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.
The skater might follow this by moving onto their right foot, while still travelling forwards and turning to
the left:
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:
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:
We now understand enough about the notation to give a more complicated example: Russian stroking:
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.
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:
- The > suffix makes a turn tighter, and can be repeated up to 3 times. Similarly, a < suffix makes a turn less tight.
- The + suffix makes an edge longer, and can also be repeated up to 3 times. As you might expect, a - suffix makes an edge shorter.
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.
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:
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:
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=:
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:
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.
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.
The Info command we covered earlier has another option, markers=true, that helps with this:
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.
(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:
The three-turn is traditionally notated like "LFO3", but for other turns there's normally a dash before the
indicator of the move:
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.
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:
The twizzle is a move that gets notated slightly differently; a count of the number of turns needs to follow
the -Tw turn indicator:
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.
The turn count also means that the system can distinguish between a loop figure, and a loop jump:
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:
The steps are repeated twice by default, but a different number of repeats can be explicitly marked:
It's also possible to indicate that a repeat should happen, but on the other foot, by ending with !|:
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:
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:
This can be combined with the explicit numbers, to reset the count so it starts at a particular value:
The duration of a move (in beats) can also be specified by putting a beat count after a slash /:
However, any duration value has to come after a number:
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
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:
The Warp command moves the skater to a different absolute position in the diagram, facing in a
particular direction:
There are lots of details that can be adjusted to get the precise diagram you want. For the next example,
- A "Start" marker has been added with the Text command.
- The rink has been made shorter with the length parameter to Rink.
- The lines have been made wider with the stroke-width parameter to Info.
- The font size has been set with the font-size parameter to Info.
- The labels for each move have been flipped to the other side, and moved further away, with the label-offset parameter to Info. This is a percentage value, so -150 is 50% further away, and the minus sign flips the labels.
- golden-skaters-waltz.skate
- novice-foxtrot.skate
- rhythm-blues.skate
- riverside-rhumba.skate
- skills1-1.skate
- skills1-2.skate
- skills1-3.skate
- skills2-1.skate
- skills2-2.skate
- skills2-3.skate
- skills2-4.skate
- skills2-5.skate
- skills3-1.skate
- skills3-2.skate
- skills3-3.skate
- skills3-4.skate
- skills3-5.skate
- skills4-1.skate
- skills4-2.skate
- skills4-3.skate
- skills4-4.skate
- skills4-5.skate
- skills5-3.skate
- skills6-3.skate
Edit |
Preview
|
Examples
Listed below are example diagrams that approximately match British Ice Skating's Skills tests and dance choreographies. These examples can be a useful source of inspiration and tips/tricks for how to get your own diagrams set how you want them.
Further Reading
To see all of the available moves and their possible parameters, consult the Reference Manual.