SqAC at a Crossroad

New Release

Today I have released the latest update to SqAC. The big change: documentation! Each screen now includes documentation on how to use the application. Many programmers slap together code, put it out there, and expect everyone to get it. They are rarely successful. This blog exists so that I, as the author, can connect with possible users. The documentation right in the application is how the app connects with the user.


Having to explain the app also connected me better with the application. The most challenging part to document was actually the Formations part of collections. You see it was never really about just Formations… the full FASR (Formation, Arrangement, Sequence, Relationship) matters. I thrashed about trying to figure out how to handle this better. Ripping them out of collections to be built-in definitions, trying to account the rest (-ASR) and how that impacts module definition… and ultimately just renaming it to Setups and accepting the limitation.

The current design, from the beginning, really only works with Static Square, Zero/Corner-Box, and Zero/Partner-Line… and all modules going between those setups… mostly zero modules. It does work. Quite well in fact. Most modules you find in publications do exactly this. It also feels… limited. As my knowledge of square dance mechanics has grown over the past year that I’ve been working on SqAC, perhaps my ambitions have as well. Ideas that seems too difficult a year ago, appear achievable now.

The limitations with SqAC right now is, it doesn’t understand FASRs and calls at all! Weaving together modules requires the caller inputting them to tell SqAC about flow and hands. If I want to expand to more setups, then modules will also need to specify arrangement transitions, toggling of sequence, and progression of relationships. I was going down this path but realized two deadly flaws:

  1. There’s already much the caller must input into to define module. Adding more creates a barrier to people wanting to input modules, and is error prone.
  2. Relationships can’t be effectively tracked, only discovered! I think it can be tracked if Sequence never changes, but once someone goes in or out of sequence, any semblance of relationship progression goes out the window.

As I said though, what we have now does work. With limited setups, more variety can be added with interruptions. Those again though are limited to true zero modules and require more input when defining modules.


I spent a week camping in Sequoia this month. It gave me some free time to just think. At one point I found myself waiting, with a pen and a scrap of paper, and I started jotting down the idea that had been formulating in my head. The result is a plan to make SqAC smart! More like SD, SqAC could actually understand calls and FASRs. Modules can be short, instead of big zeros, moving between any pair of setups. I imagine even an “I’m feeling adventurous” mode that just creates choreography from the calls, with no modules at all!

It’s an intriguing idea.

It’s also a whole lot of work when I thought I was finally approaching v1.0.


I’d like to hear what you think would be useful, either to you personally or to the square dance community as a whole.

Is SqAC useful as it is? Will it be more useful to you and others if I make it smarter and remove limitations? Is there something I can move toward to make SqAC into a transformative agent for square dancing, or will it only ever be a toy?

Should I just leave it as is, and focus on my own skills as an extemporaneous site caller like everyone wants to be these days?

Email me at the address below, or join the SqAC Community on Facebook.

– Adam

Leave a Reply