Dance It Eight Times
Square dance callers keep a working vocabulary for sequences that go nowhere. A zero brings the square back to where it was; a half zero has to be danced twice before it does. In 2012 their list of the fractions anyone had found stopped at 1/2, 1/3, 1/4, 1/6 and 1/12. From the zero box, one of the two setups callers commonly start a get-out from, two Mainstream calls make a 1/8. Call them below and keep calling.
Press Load Boys Run, All Eight Circulate, then dance the sequence eight times. After each one the box above says where the square stands against where it started. After every second repetition the boys are all back on their own footprints, and the girls have moved one place round the ring. After two, each boy has his corner standing where his partner stood; after four, his opposite; after six, his right-hand lady; after eight, his partner, and all eight dancers are back on their own footprints. The dancers glide in straight lines between positions; the real paths are drawn by Taminations, which this page checks itself against.
What callers mean by zero
A caller improvises: the dancers do whatever is called, and at the end of the figure the caller has to bring every dancer back to their partner, in order, and walk them home. To do that live, callers track a few things about the square and not its full state. Formation, Arrangement, Sequence and Relationship, abbreviated FASR. Formation is the shape; arrangement is which spots the boys and girls hold; sequence is whether the couples come round the ring in order; relationship is who is paired with whom. A module that changes none of the four is a zero, and there are kinds of them:
Geographic Zero: A series of one or more calls that returns the dancers to the same footprints. … True Zero: A series of one or more calls that returns the dancers to the same footprints, but the entire square may be rotated with respect to the walls. … Fractional Zero: A series of one or more calls which must be called two or more times in order to return the dancers to the same FASR. … The following fractional zeros have been identified: 1/2, 1/3, 1/4, 1/6, 1/12.Clark Baker (moderator) and Tim Marriner, “True and Technical Zeros”, CALLERLAB convention 2012, fortytwo.ws/~cbaker/technical-zeros.html
These are exactly the notions a mathematician would reach for. Two squares have the same FASR precisely when one is the other turned by some number of quarter turns, with every couple renumbered by the same shift. Those two moves, a turn of the whole picture and a renumbering, are the symmetries the caller agrees to ignore. A zero is a sequence that ends where it started up to those symmetries. A fractional zero is one whose repeats cycle, and the fraction is one over the length of the cycle. That this reading exists is not new. Christina Lorenzo’s 2010 honours thesis builds a group of call sequences on a fixed formation and bounds the order of a single call. Greg Moore and Karin Rabe (Rutgers, 2022) argue calls form a category rather than a group, because some calls cannot be done from some setups, and count eight states per generic FASR. Alfonso Gracia-Saz gave square dancing as the example of a groupoid in 2010. Tomas Machalik worked out fractional zeros as cycles of dancer positions for callers in 2006. The references are at the foot of the page.
What this page adds is the running. It has a dancing engine that has been checked against Taminations, and it uses that engine to dance millions of sequences and every published module we could find.
An eighth zero, and where the others are
The census starts from four of the standard setups a caller works from. From each, it dances every sequence of up to five calls taken from 60 calls on CALLERLAB’s Mainstream list (the list that took effect on 1 September 2026). It repeats each sequence until the square is back at its starting FASR or can go no further. A step is only allowed if it is a checked case: Taminations draws an animation of that call from that exact shape, the same boys and girls where it matters, and the engine lands where the animation lands. From the zero box that is 4,403,832 sequences; from the zero line 5,872,006; from ocean waves 4,519,638; from two-faced lines 4,121,372.
The table gives, for each order, how many sequences have it and the first shortest one found; tap one to load it into the square. A tick means the sequence was also danced with nothing but Taminations’ own animations, chained frame to frame without any of the engine’s rules, and came back after exactly that many repetitions and not before. That replay confirms 7 of the 7 shortest 1/8 and 1/12 zeros in the table. Every fraction on Baker’s list turns up. So does 1/8, from every setup, and from the zero box it takes only two calls.
How much weight 1/8 can bear. Baker’s sentence says which fractions had been identified, not which exist, and we have not found anyone claiming a 1/8 is impossible. Lorenzo’s thesis shows a single call can have order 8 on a fixed formation, using Inroll Circulate, which is an Advanced call. So this is a fraction missing from a published list, found with Mainstream calls. It is not a refutation of anything.
The two-call version leans on a use of All Eight Circulate that CALLERLAB’s own definitions allow but advise against. On alternate repetitions it is called from columns, where CALLERLAB defines it as column circulate. On the others it is called from a trade by, about which the definitions say: “These applications are proper, but confusing to many dancers. Except in an instructional setting, they are often perceived as attempts to trick the dancers and should probably be avoided.” If you would rather not trick your dancers, the four-call 1/8 zeros in the table avoid that use, and so does Boys Trade, Swing Thru, Centers Circulate, Boys Run from the zero line.
Every published module we could find, danced
A scout collected zeros, fractional zeros, equivalents, get-outs and conversions, word for word, from Vic Ceder’s choreography database and from articles by Baker and Marriner, Barry Clasper, Barry Johnson, Tim Marriner, Shaun Werkele and Tomas Machalik. Each was danced from the setup its source names, and the result was judged against the source’s own claim. 54 of 63 rows hold, and none fails. The rest could not be judged: 4 refused, where the literal wording is not something the engine will dance; 1 needs a call the engine does not model; and 4 are get-outs ending in a setup our resolve test does not cover. Rows marked reading are our interpretation of an ambiguous wording, and say what we assumed.
The checks that could have failed and did not are worth naming. Werkele says his modules return dancers to “the exact location on the floor”, and they do. Baker says a technical zero “used from the wrong sequence state will accomplish a 4 Ladies Chain action”. From a square in sequence his technical zeros do exactly that, and from one out of sequence they are zeros. In one worked example he adds an optional Eight Chain 2 and says the dancers end “still in sequence, but the boys are all promenading their opposite girl”, and they do.
How the engine is kept honest
The engine was written from the call definitions: pass thru, trade, run, hinge, circulate and so on, each a small rule about who moves where. Nothing in it is copied from anyone’s tables. After every call the square “breathes”: each axis is squeezed back to even spacing, so a state is an arrangement of dancers rather than a set of distances. A call it cannot do from the square it is given is refused, never guessed.
It is then checked against Taminations, Brad Christie’s animated definitions. Taminations describes each call as Bezier paths for each dancer, and a small reader on this page follows those paths to the end of the animation. Taminations has 411 animations of Basic and Mainstream calls the engine knows by name. Started from each animation’s first frame, the engine lands where the animation lands in 359 of those 411 animations, and disagrees with none. It refuses the other 52, from setups it does not model, such as diamonds, quarter tags and tidal lines for some calls. A further 275 animations are of calls it does not know at all.
Two things went wrong on the way, and both are why the census is strict.
- The first census used a looser notion of a checked case that ignored who was a boy and who a girl. It reported a 1/8 zero from the zero box through Star Thru. Replaying that sequence with Taminations alone failed at the second repetition: the Star Thru there is danced by boy–girl pairs whose neighbours are the same sex, and in Star Thru boys and girls turn opposite ways. It was withdrawn. Checked cases for calls where boys and girls move differently now have to match Taminations’ boys and girls too.
- The engine first read “Boys Circulate” as each boy moving to the next spot a boy held. CALLERLAB’s definition says the named dancers move one position, and calls it improper when that lands one on an inactive dancer’s spot. A 1/12 the loose census found depended on the wrong reading and has gone.
What this does not show
- It is not a search of all Mainstream choreography. The census is five calls deep, from four setups, over 60 calls. It uses only cases Taminations animates, and within the census the engine has danced exactly what Taminations draws. That is a small corner of what callers call. The 1/12 on Baker’s list appears here from ocean waves and two-faced lines. It does not appear from the zero box within five calls, and five calls is the only depth we can report on.
- The engine does not model diamonds, quarter tags, thars, stars, circles or promenades. It does not model the Plus and Advanced lists. Where a module needs one of those, the table says so rather than guessing.
- The resolve test covers get-outs ending in a static square, an eight chain or a trade by, the setups Taminations animates Allemande Left and Right and Left Grand from. It asks that each boy’s first hand be his corner (for Allemande Left) or his partner (for the grand), with the square in sequence. Four get-outs end elsewhere and are listed as not covered.
- “Same FASR” here means the same picture up to a quarter turn and a renumbering of every couple by the same amount. That is the eight-state class Moore and Rabe describe for generic FASRs. For symmetric special setups callers may count more states as the same, which could only make an order smaller.
Sources
- Clark Baker and Tim Marriner, “True and Technical Zeros”, CALLERLAB 2012: fortytwo.ws/~cbaker/technical-zeros.html
- Barry Clasper, “Lots Of Stuff About Modules”, CALLERLAB KnowledgeBase: knowledge.callerlab.org/material-on-modules
- CALLERLAB, Basic and Mainstream Definitions (revised 31 May 2013), Circulate Family 21.a–21.d, as mirrored at bowsandbeaus.org/bms_def.pdf; the same text is on Taminations’ Circulate page.
- CALLERLAB, the Mainstream list effective 1 September 2026, as mirrored by Tudor Squares: New-Mainstream-Program-List-2026-09-01.pdf
- Vic Ceder, Choreography database: ceder.net/choreodb
- Tim Marriner, “Modular Basics” and “Mainstream Get-outs”; Barry Johnson, “Technical Zeros are Useful!” (2019); all on the CALLERLAB KnowledgeBase.
- Shaun Werkele, “Seven ‘Wasted Trip’ Zero Modules” (2016): shaunwerkelesquaredancecalleraugustrecords.wordpress.com
- Tomas Machalik, “Thinking About Arrangements and Fractional Zero Modules”, Electronic Tips for Callers 8 (2006): etc.square.cz/etc8.pdf
- Christina Lorenzo, “The Art of Square Dancing: Math in Motion”, honours thesis, North Central College (2010): Lorenzo_squaredancing_thesis.pdf
- Greg Moore and Karin Rabe, “Mathematics & Theoretical Physics of Modern Western Square Dancing”, slides, 2022: physics.rutgers.edu/~gmoore
- Alfonso Gracia-Saz, answer to “What’s a groupoid?”, MathOverflow (2010): mathoverflow.net/questions/1114
- Brad Christie, Taminations: tamtwirlers.org/taminations. Its animation files are read over the network and never copied here; the engine’s agreement with them is recorded file by file, with each file’s SHA-256.
The check. verify-dance-it-eight-times.mjs imports only the files this page serves: the engine, the setups, the modules, the census and the Taminations reader. It dances every module again, re-runs the census to three calls deep from all four setups, and replays every reported witness. It confirms Boys Run, All Eight Circulate returns after eight and not before, and checks the numbers on this page against results.json. With --taminations it fetches Taminations’ files and repeats the comparison and the Taminations-only replays. With --selftest it plants five defects and requires each to be caught.