• Salsational
    Dance Application

    Salsational API | Salsational Parser | Salsational Dance-Notation Visualization


Context Existing dance-notation and dance-notation visualisation constructs make use of complex schemes and techniques for animation. Dense data is required as a result of the number of limbs and degrees of freedom (DOF) for each limb in the human body.This makes it difficult to record and verify dance sequences and to generate animations from data. The state-of-the-art makes use of Labanotation, which consists of several thousands of symbols.

Project Goals The objective of the project was to develop a system to create and validate Salsa dance sequences using a variant of the Salsa Dictionary, and to generate animations from input notation derived from this scheme.

Acknowledgements This project was performed with the assistance of Evolution Dance Company (EDC). We would like to thank all teachers and students that were involved in the the development. In particular, we would like to extend our gratitude towards Mr Angus Prince, whom contributed significantly towards the project.

Project Breakdown The project was broken down into three core components. Each component comprises one aspect of the aforementioned objectives.
  • Salsational API
  • Salsational Parser
  • Salsational Dance-Notation Visualization

The following sections in this document refer to each component individually.


Salsational API Developing a tool to formalise dance steps and animate a Salsa dance form, proves challenging as there are currently limited resources available. The existing paper-based notations have proven to be too complex for students to record and model dance choreography. As these are paper-based systems, there has not been much uptake on computerising these notations. We intend on leveraging an existing notation system to generate a more representative notation for dance.

Salsational Parser Learn Salsa, Salsa Anywhere and Salsa Dancing are among the top rated applications with the aim of teaching its users the Salsa dance style. The aforementioned applications do not implement heuristic principles in furtherance of a good user interface. All three applications rely on videos to teach dance which lacks formal clarification of moves into clear steps and positions. There have been previous works of generating original parsers and parser generators. An example of an original parser that was created, was done so using annotated classes. This is in contrast to the traditional approach of specifying a syntax or grammar in BNF notation. Despite the numerous works on context-free grammar design, no grammar has been designed to represent constraints for a dance sequences. Thus, this is a novel problem domain.

Salsational Dance-Notation Visualization Existing dance notation visualization systems produce static animations which limit their usefulness in practice. Further, these systems derive animations on a best-effort basis from complex notation schema. This makes it difficult for novices to utilize such programs without dedicated technical knowledge.


Salsational API

User-friendly Tool

Develop a user-friendly, software tool, in the form of a desktop application, for dance teachers to plan lessons, using the enhanced Salsa Dictionary notation scheme.

Extensible Dance API

Create an API to provide a way to support several dance styles in a well-defined manner.

Salsational Parser

Graphical Application

Create a user-interface (UI) application that allows users to create and valid dance sequences for a dancing-pair.

Rule-based Dance Parsing

Create an implementation of a context-free grammar (CFG) to denote the dancing rules and turn patterns for salsa.

Salsational Dance-Notation Visualization

Graphical Application

Create a user interface to allow users to easy select, play and control animated dance notation.

Dance-Notation Visualization

Develop a system to visualize dance notation through the use of motion data.

Motion Data Interpolation

Conjoin separate articulated movements within motion data file to produce contiguous sequences of movement.

Dance Moves
Motion Files
Possible Notations


The API tool that we have developed in this study is driven by a novel approach to computerizing Salsa and various partner-based dance routines. The API was designed in an abstract manner to cater for extensibility to different dance styles. To assess the extensibility of the API we tested it across various dance styles concluding that our API can be used to extend other dances provided that the dance follows a 4- beat pattern.
The iterative process was insightful as context-free grammars for this problem domain are novel. The option to design the grammar to iteratively check two moves, instead of an unlimited amount, proved to be a better user experience. The parser was thoroughly tested, using personal and external test cases from dance teachers, to ensure that nearly all sequence options were analysed. The grammar’s aim, to control the sequence generation process, was accomplished, but whether or not the context-free grammar had the optimum grammar specification cannot be confirmed. The overall feedback on the application was positive, with all the criticism being constructive and leading to enhancements to the final design of the interface. Participants valued the simplicity and consistency, with praise being given to the final UI theme and design. The navigation, a property that was meticulously deliberated, was agreeably well-implemented. All the interface’s elements had good affordances, since there was no confusion on how to interact with them. The participants’ described the interface as easy to use and understandable.
A visualization system based on Description files was produced. Iterations that were conducted met stakeholder requirements. The smoothing component was met with satisfaction through a low-level interface.


Salsational API

Salsational API Architecture Diagram
Salsational API Class Diagram

Salsational Parser

Salsational Parser Sequence Generation
Salsational Parser Dance Move Validation Diagram
Salsational Parser User Interface 1
Salsational Parser User Interface 2
Salsational Parser User Interface 3
Salsational Parser User Interface 4
Salsational Parser User Interface 5

Salsational Dance-Notation Visualization

Salsational Dance-Notation Visualization Architecture Diagram
Salsational Dance-Notation Visualization User Interface 1
Salsational Dance-Notation Visualization User Interface 2
Salsational Dance-Notation Visualization User Interface 3
Salsational Dance-Notation Visualization User Interface 4


Micara Marajh

Salsational API Email: mrjmic001@myuct.ac.za

Alka Baijnath

Salsational Parser Email: bjnalk001@myuct.ac.za

Jordy Chetty

Salsational Dance-Notation Visualization Email: chtjor001@myuct.ac.za

Maria Keet

Project Supervisor Email: mkeet@cs.uct.ac.za