Skating Diagram Generator Tutorial

Basics

This is a tutorial for the Figure Skating Diagram Generator, starting from the basics and progressing on to cover all the details that are needed for generating precise diagrams.

The generator relies on a notation system, and the core of that notation system is an edge code. This code describes what the skater is doing by abbreviating which foot they are skating on, which direction they are travelling, and which edge they are on. For example, LFO means that the skater is travelling forwards on their left foot, on the outside edge of the blade.

Edit | Preview

The skater might follow this by moving onto their right foot, while still travelling forwards and turning to the left:

Edit | Preview

The example here has a new line for the second edge, but it's also possible to make the notation more compact by using a semi-colon instead of a new line:

Edit | Preview

The generator assumes that the skater will carry on in the same direction as the previous edge (we'll see later how to change that). Also, because the skater has changed foot (from left to right), there's a slight sideways gap corresponding to a natural change of weight.

However, a crossover is a common skating move, where the new skating foot is crossed in front of the previous foot. To indicate this, we can add a xf- prefix and see that the second edge now starts in a different place:

Edit | Preview

We now understand enough about the notation to give a more complicated example: Russian stroking:

Edit | Preview

This looks OK as a first approximation, but it's not quite the trace that a real skater would have. This gives us the chance to introduce some more aspects of the notation.

First, it's common to take a wider step when changing the direction of rotation. This can be indicated with a wd- prefix, similarly to the xf- prefix above.

Edit | Preview

Next, the edges aren't quite what a real skater would perform – some of them should be longer, and some should be a deeper edge. The notation allows for a rough and ready adjustment of these aspcts by adding suffixes after the move:

Edit | Preview

Finally, we can make the diagram a little bit more helpful by including a Title. This is the first example of a part of the notation that doesn't describe what the skater is doing, but instead gives information about how to format the diagram.

Edit | Preview

The notation here is a little bit different, which gives us a chance to explain somethings that become vital when generating precise choreographies.

The first is the square brackets after Title. These square brackets hold precise details of what should be displayed, which can vary from move to move. In this case, the specific detail is the text that should be displayed as the title, given in double-quotes after text=.

Under the covers, the ">" and "+" modifiers we encountered earlier are just short cuts for some specific parameters. For example, most moves include parameters like len= and angle=, and the shortcuts change to different values for them. But they can be explicitly specified for precise control:

Edit | Preview

In general, all distances are measured in centimetres, and angles are measured in degrees. However, some measurements are absolute and some are relative. What does that mean?

Absolute measurements are given in the coordinates for the diagram as a whole. For example, our title isn't in quite the right place, so we can adjust where it gets centred:

Edit | Preview

Try changing the x= and y= values to see where the title looks best. This will also help you get a sense of the coordinate – the X-axis goes from left to right, and the Y-axis goes from top to bottom.

There's also a way to avoid trial and error when making things more precise. The Info command changes various things about how the diagram is displayed, and one thing that can help is to enable a grid=:

Edit | Preview

This displays a grid at 100cm intervals to help you do precise alignment, and the X- and Y- axes are shown slightly darker. Once everything is in the right place, you can remove the Info.

Relative measurements are given according to where the skater is at a moment in the choreography, and in which direction they're facing. Let's return to a simple example to demonstrate this:

Edit | Preview

Let's suppose we want to make the cross-in-front more substantial. To do that, we can use the Shift command between the two edges to alter the skater's position.

Edit | Preview

The side=60 parameter here moves the skater 60cm to the side, relative to the direction that the skater is facing. That means that if we add another move beforehand, the later two steps stay the same – just in a different position on the page.

Edit | Preview

The Info command we covered earlier has another option, markers=true, that helps with this:

Edit | Preview

When this option is enabled, the start of each move gets a green cross (indicating position) and arrow (indicating direction), and the end of each move gets a red one. We can see that the Shift command has moved sideways relative to the direction at the end of the first edge.

This example also shows how to specify more than one parameter at a time: just put a comma between them. Again, once the diagram is how you want it, you can remove the Info to get a cleaner image.

Moves

It's possible to create a picture of a 3-turn by breaking down the individual parts: an entry edge, a rotation, and an exit edge.

Edit | Preview

(As an aside, this illustrates another variant of the Shift command described previously. Here, the position is kept the same, but the skater is rotated 90° anticlockwise between the two edges.)

However, describing turns like that would get tiresome very quickly, so the generator includes shortcuts for all of the standard skating turns. These are indicated by adding a turn indicator after the move code:

Edit | Preview

The three-turn is traditionally notated like "LFO3", but for other turns there's normally a dash before the indicator of the move:

Edit | Preview

As with simple edges, there are len= and angle= parameters that can adjust the shape of the move, and basic changes can be made with > and + etc.

Edit | Preview

The len= and angle= parameters affect both the entry and exit edges for a turn. If you want to separate them, there are delta-len and delta-angle parameters that say how different the exit edge should be from the entry edge:

Edit | Preview

The twizzle is a move that gets notated slightly differently; a count of the number of turns needs to follow the -Tw turn indicator:

Edit | Preview

Jumps also need to include a turn count, although this only affects the label attached to the figure rather than the positioning. Each jump also needs to be preceded by the relevant entry edge, which allows for both regular (e.g. LFO-1A) and goofy (e.g. RFO-1A) variants.

Edit | Preview

The turn count also means that the system can distinguish between a loop figure, and a loop jump:

Edit | Preview

Repeats

Some sequences involve repeating the same steps more than once. You can encode this by just copy-pasting the relevant moves, but it's also possible to explicitly encode a repeat:

Edit | Preview

The steps are repeated twice by default, but a different number of repeats can be explicitly marked:

Edit | Preview

It's also possible to indicate that a repeat should happen, but on the other foot, by ending with !|:

Edit | Preview

Timings

Dance choreography often needs additional timing or sequencing information. To support this, a number in brackets before a move means that it gets additionally labelled with that number:

Edit | Preview

To make this easier for longer choreographies, the Info command can have the auto-count=true option set. This assumes that each new step takes the next number, giving automatic numbering:

Edit | Preview

This can be combined with the explicit numbers, to reset the count so it starts at a particular value:

Edit | Preview

The duration of a move (in beats) can also be specified by putting a beat count after a slash /:

Edit | Preview

However, any duration value has to come after a number:

Edit | Preview

Complete Diagrams

To create a complete choreography diagram, a few more elements are needed.

Firstly, it often makes sense to put the figures inside a Rink

Edit | Preview

That's a start, but the moves are in the wrong place. Turning on some Info features can help us figure out where things should be:

Edit | Preview

The Warp command moves the skater to a different absolute position in the diagram, facing in a particular direction:

Edit | Preview

There are lots of details that can be adjusted to get the precise diagram you want. For the next example,