Skating Diagram Creator

Overview

This page allows interactive creation of skating choreography diagrams.

To build a skating diagram, enter move codes into the text entry box, one per line (or separated from the previous move by a semi-colon ;). A move code is typically a three letter code denoting the skating edge, optionally followed by an abbreviation for the move being performed. Blank lines are ignored, and anything after a hash (#) on a line is treated as a comment and ignored.

For example, the code LFO-Br indicates a bracket turn being performed from a left forward outside edge, thus ending on a left backward inside (LBI) edge.

As a shorthand, moves can be made longer or shorter by appending up to 3 plus (+) or minus (-) signs, for example LFO-Rk++. Moves can also be made to turn more or less tightly by appending up to 3 greater-than (>) or less-than (<) signs, for example RBI-Ctr<<.

It's also possible to more precisely control exactly how big or tightly curved a particular move is. A move can be followed by a comma-separated list of parameters enclosed in square brackets, e.g. LFO [len=350,angle=90]. The allowed parameters for each move are described in the Move Reference section below.

To sum up, skating move codes are typically made up of:

So a code like xf-RFO3> describes:

Diagram Commands

A skating diagram can also include commands that relate to the layout of the diagram, rather than to a particular skating move. For example, including Rink incorporates an ice rink layout on the diagram, and Title adds a title for the diagram.

The Info is worth specifically mentioning; this allows various layout helpers to be enabled, including a grid, and markers for the position and direction of the skater at the start and end of each move (e.g Info [grid=100,markers=true]).

The position and direction of the skater at each point is particularly relevant for the Shift command, because it moves and rotates the skater relative to their current position/direction. (In contrast, the Warp command moves the skater to an absolute position and direction on the diagram.)

Counts and Timing

Dance choreographies often need to display a running count of moves, or an indication of how many beats of music a step should take. This is done by prefixing the move code with:

For example, an input of 3) /2 RFI indicates that a right forward inside edge as the third step, which should hold for 2 beats.

The Info command includes an auto-count parameter that turns on automatic numbering of skating moves.

Examples

Example diagrams that approximately match British Ice Skating's Skills tests and dance choreographies:

Move Reference

Example Move Parameters
LFO Curving edge
  • angle: Angle of rotation from start to finish, in degrees (default 20). Can also be modified by a < or > (repeated) suffix.
  • len: Length in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • label: Replacement label, used if non-empty (default "").
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
LF Straight edge
  • len: Length in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • label: Replacement label, used if non-empty (default "").
  • style: Style of line (default "").
LFO3 Three turn
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
LFI-OpMo Open mohawk
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
RBO-ClMo Closed mohawk
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
LFO-Br Bracket turn
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
LFO-Rk Rocker turn
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
LFO-Ctr Counter turn
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
LFI-OpCho Open choctaw
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
RBO-ClCho Closed choctaw
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
LFO-CoE Change of edge
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
  • flat-len: Length between edges in centimetres (default 50).
LFI-Tw1.5 Twizzle
  • angle: Angle of rotation for each curved part, in degrees (default 60). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 200). Can also be modified by a + or - (repeated) suffix.
  • pre-len: Length of entry curve in centimetres (default 100).
  • pre-angle: Angle of entry curve in degrees (default 45).
  • post-len: Length of exit curve in centimetres (default 100).
  • post-angle: Angle of exit curve in degrees (default 45).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
RBI-Loop Loop figure
  • angle: Angle of rotation for each curved part, in degrees (default 90). Can also be modified by a < or > (repeated) suffix.
  • len: Length of each curved part in centimetres (default 450). Can also be modified by a + or - (repeated) suffix.
  • delta-angle: Difference in angle for second curved part, in degrees (default 0).
  • delta-len: Difference in length for second curved part, in centimetres (default 0).
  • style: Style of line (default "").
  • transition-label: Replacement transition label, used if non-empty (default "").
  • label-offset: Amount to scale label offsets by, as a percentage, or -1 to use global value (default -1).
Warp[x=100,y=100,dir=270] Move skater to new location/position
  • x: Horizontal coordinate to warp to (default 0).
  • y: Vertical coordinate to warp to (default 0).
  • dir: Direction to be facing after warp, in degrees (0 is facing down) (default 0).
  • code: Foot code to start with after warp (default "").
Shift[fwd=50,side=50,rotate=270] Move skater relative to current location and direction
  • fwd: Distance to shift forward in direction of travel (default 0).
  • side: Distance to shift sidewards relative to direction of travel (default 0).
  • rotate: Rotation (clockwise) to perform, in degrees (default 0).
  • code: Foot code to start with after shift (default "").
Rink Rink depiction
  • width: Rink width in centimetres (default 3000).
  • length: Rink length in centimetres (default 6100).
  • centre-line: Whether to show the centre line (default true).
  • centre-circle: Size of the centre circle in centimetre, 0 to omit (default 400).
  • centre-faceoff: Whether to show the centre face-off (default true).
  • mid-lines: Location of mid-lines in centimetres from the centre line; 0 to omit (default 800).
  • goal-lines: Location of goal lines in centimetres from the ends; 0 to omit (default 0).
  • goals: Whether to show the goals (default false).
  • faceoffs: Whether to show the face-offs (default false).
Info[markers=true,grid=100,move-bounds=true] Set diagram rendering information
  • markers: Whether to show begin/end move markers (default false).
  • bounds: Whether to show overall bounds (default false).
  • grid: Grid size to display, 0 for no grid (default 0).
  • margin-x: Horizontal margin (default 50).
  • margin-y: Vertical margin (default 50).
  • move-bounds: Whether to show bounds of each move (default false).
  • font-size: Font size for labels; 0 for no labels, -1 for auto-scaling (default -1).
  • stroke-width: Stroke width; 0 for auto-scaling (default 0).
  • label-offset: Amount to scale label offsets by, as a percentage (default 100).
  • auto-count: Whether to automatically count moves (default false).
Title[text="Waltz"] Diagram title
  • text: Text of title (default "").
  • x: Horizontal location of title; -1 indicates automatic centering (default -1).
  • y: Vertical location of title (default 100).
  • font-size: Font size for title; 0 for auto-scaling (default 0).
Text[text="Start",x=500,y=200] Diagram text
  • text: Text to display (default "").
  • x: Horizontal location of text (default 100).
  • y: Vertical location of text (increasing down) (default 100).
  • font-size: Font size for label; 0 for auto-scaling (default 0).
  • rotate: Angle to rotate text by (default 0).
Label[text="CoE",fwd=50,side=20] Diagram label relative to current position
  • text: Label to display (default "").
  • fwd: Location of text relative to current position, in current direction (default 0).
  • side: Location of text relative to current position, sideways from current direction (default 0).
  • font-size: Font size for label; 0 for auto-scaling (default 0).
  • rotate: Angle to rotate text by (default 0).