cs/it honours final paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is...

11
CS/IT Honours Final Paper 2019 Title: Author: Project Abbreviation: Supervisor(s): Category Min Max Chosen Requirement Analysis and Design 0 20 Theoretical Analysis 0 25 Experiment Design and Execution 0 20 System Development and Implementation 0 20 Results, Findings and Conclusion 10 20 Aim Formulation and Background Work 10 15 Quality of Paper Writing and Presentation 10 10 Quality of Deliverables 10 10 Overall General Project Evaluation (this section allowed only with motivation letter from supervisor) 0 10 Total marks 80 DEPARTMENT OF COMPUTER SCIENCE Salsational Graphical Application DEDANCE Jordy Chetty Dr Maria Keet 20 0 0 20 10 10

Upload: others

Post on 12-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

CS/IT Honours Final Paper 2019

Title:

Author:

Project Abbreviation:

Supervisor(s):

Category Min Max Chosen Requirement Analysis and Design 0 20 Theoretical Analysis 0 25 Experiment Design and Execution 0 20 System Development and Implementation 0 20 Results, Findings and Conclusion 10 20 Aim Formulation and Background Work 10 15 Quality of Paper Writing and Presentation 10 10 Quality of Deliverables 10 10 Overall General Project Evaluation (this section allowed only with motivation letter from supervisor)

0 10

Total marks 80

DEPARTMENT OF COMPUTER SCIENCE

Salsational Graphical Application

DEDANCE

Jordy Chetty

Dr Maria Keet

20

00

201010

Jordy
Jordy
The Engineering of a Dance-Notation Visualization System Through the Iterative-Waterfall Approach
Page 2: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

The Engineering of a Dance-Notation Visualization SystemThrough the Iterative-Waterfall Approach

Jordy ChettyUniversity of Cape TownCape Town, Western [email protected]

ABSTRACTMost recent e�orts relating to dance-notation animation systemsgenerate static three-dimensional output derived from analysing thestructure of an annotation on a best-e�ort basis. These annotationsare derived from complex, paper-based notation schemes, makingthe systems di�cult to use without prior knowledge of a dancenotation scheme. They provide little value for dance learners interms of being able to understand how dance moves are performedaccurately due to information loss that occurs during conversionfrom notation to animation. Fundamentally, these systems are notable to produce meaningful output that can be utilized by dancerse�ectively. Using the Salsa dance style, we present a new dance-notation visualization system that both simpli�es the annotationanalysis step and eliminates information loss through the use ofmotion capture data rather than syntactical analysis. Additionallywe add an interpolation component to blend separate segments ofmotion data. As a result, we improve the state of the art through themitigation of information loss, removing the complexity associatedwith recording sequences of dance moves and through additionalfunctionality.

CCS CONCEPTS• Software and its engineering → Requirements analysis;Software design engineering; Software implementationplan-ning; Software development techniques; System description lan-guages.

KEYWORDSmotion data, software engineering, computer graphics, interpola-tion

1 INTRODUCTIONConventional learning patterns for dance typically involve twoparties, one that possesses competent knowledge about how move-ments are performed, other movements that can be performed insuccession, and how they integrate within a rhythm count. Infor-mally, this may be considered as the de�nition of the dance. Thesecond party, the student, learns through observation or practice,or a combination thereof. Once adequate knowledge has been trans-ferred to the student, dance movements can be easily identi�ed,but conveying this information symbolically remains a challengingproblem. The issue of encoding a dance style is challenged by vari-ability in execution that can occur for a given motion and the datathat is required to accurately denote how to perform a movementwithout losing information. The best e�orts to achieve this store

the position and orientation of vital limb information as time pro-gresses along with a set of rules detailing where the movement canbe performed. The set of data that is needed to convey this infor-mation is infeasible to write manually and confusing for a learnerto understand. As a result, no standardized notation exists to ac-curately encompass the full set of dance movements for all dancestyles. Cillekens [11] states that this possibly could be attributedto the complexity of recording time-series three-dimensional data.Cumulative error due to the unreliability of human recollectionover multiple generations may cause the contemporary structure ofa dance style to vary from its original form. Entire movements mayalso be lost within a single generation. This is in�uential as dancestyles have cultural signi�cance. As movements are forgotten, her-itage is lost. As a result, systems have been created to expedite thenotation process and visualize notations through animations, butare greatly constrained making them impractical for general use.Several notations exist for notating dance movements but Labano-tation [12] has become most widely accepted, and is thus used inmost dance-notation animation systems. Other notation schemesare either more complex or not descriptive enough to be able torecord dance movement su�ciently. The use of Labanotation inthese types of systems is debatable as they only implement a subsetof it due to its inherent complexity and lexis. Fundamentally the ex-pressiveness of existing systems is dependent on the notation that isused to represent movement. On the other hand, the expressivenessof notation schemes increases as the complexity of the notationincreases. This makes designing e�ective systems of this nature adi�cult challenge. In this paper, we present Salsational, a systemfor visualizing dance-notations through the use of motion-captureddata. In contrast to prior systems of a similar nature, our systemcan display three-dimensional movement sequences as opposedto static images and does not require technical knowledge of adance style or notation system to store and record movement. Itfunctions by using a global or local movement data store that userscan contribute to in a simple way, which can then be used to createsequences of movement. The requirements for the system werespeci�ed by Angus Prince of Evolution Dance Studio (EDC), andcan be found in section 4.1. Mr. Prince helped to test and evaluatethe system throughout the development life cycle.

This system was created in conjunction with a complementarysystem, created by Micara Marajh and Alka Baijnath, which allowsDescription �les (referred to in appendix A) to be loaded into thesystem. The scope of this paper is restricted to the graphical aspectof the Salsational system, but references are made to the descriptionmodule for completeness. The intellectual property rights of thesource code is held and maintained by the creator, Jordy Chetty.The source code for this system is released as open-source software

Page 3: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

Che�y

to the public and licensed under the GNU General Public License(GPL) V3. Although the software is open-sourced, the system con-tains both licensed and unlicensed code from several vendors. Thepaper is structured as follows. In section 2, we discuss related workin dance-notation visualization systems and provide backgroundtheory on subjects referred to in this paper. In section 3, we dis-cuss the software development methodology used to create thesystem. In section 4, we discuss the requirement analysis phaseof development. In section 5, we discuss the system developmentand implementation phase. In section 6, we discuss the results andprovide a discussion of the development process. Finally, we stateconclusions in section 7.

2 BACKGROUNDThis section �rst describes the state of the art in dance-notationvisualization systems. Then background theory is provided formotion capture formats and auxiliary processes. Interpolation andapproximation methods are then discussed brie�y.

2.1 Existing Dance-Notation VisualizationSystems

LabanWriter is a notation-transcribing application which allowsusers to graphically create scores by way of a graphical interface.The �les generated by this application were used by LabanDancer[13] to convert scores into graphical representations. The symbolsin LabanWriter �les were transformed and placed into a data struc-ture which was then used as a reference to drive the animationof a three-dimensional model. The movement of the model wassynthesised using IKAN, an inverse kinematics algorithm. The useof inverse kinematics as opposed to animation data presents pos-sible inaccuracies in the performance of the animation as it is notdata-driven. Furthermore, the limitations of LabanWriter directlya�ect the results of [13]. Laban Editor [7] has functionality forboth creating scores and generating animations. Similarly to La-banWriter, scores can be written using an graphical interface. Theapplication stores the movement data in Labanotation Data (LND)format. Animation is performed by converting LND using motionconversion template �les. These �les generate the data required todrive the movement of a �gure. In contrast to [13], the system o�ersseveral conversion methods which enable the �gure to perform theanimation di�erently by using di�erent templates. [14] stated thisas problematic as the quality of the animations relied on the qualityof the template �les available. Both [13] and [7] only allow a single�gure to be animated at a time. Life Forms, a proprietary softwareplatform, addressed the issue of single character animation by al-lowing multiple �gures to be animated using motion capture data.The system can import and export several popular motion capture�le formats. It is packaged with additional motion capture data thatcan be used to extend animation sequences by using its blendingfunctionality. Users can also edit models graphically, and createnew poses from existing poses by editing the skeletal structuresimported into the program. It can be integrated with popular ap-plications such as Maya. It is more extensible and �exible than theapplications previously described, but the support for Labanotationis limited.

2.2 Motion CaptureThe BioVision Hierarchy (BVH) �le speci�cation, shown in Fig-ure 11 is used to encode data recorded using motion capture sys-tems. The �le consists of two sections. The �rst section describesa skeleton hierarchy and segment information. The hierarchicaldescription implies that parent segment transformations a�ect allchild transformation segments. Each segment contains a channeldescription, which parameterizes segment animation and de�nesthe order in which transformation are composed. Each channel de-scription identi�es the axes along which a segment can be rotatedand translated. The second section contains motion samples speci-�ed in Euler angles. Each motion sample is de�ned on a separateline. The data for each channel is listed in the order in which thechannel appears in the hierarchy description on every line [9]. Seg-mentation of motion capture is the process of isolating a sequenceof motion data, usually for the purpose of capturing a recognizablemovement. In practice, motion capture systems record continuousmotion and thereafter the data is segmented manually or via anautomated process.

2.3 Interpolationn-dimensional Bezier curves [3], de�ned as

B(t) =n’i=0

✓n

i

◆(1 � t)n�i t iPi

with t 2 [0, 1], points P0, P1, ..., Pn , and✓n

i

◆=

n!i!(n � i)!

are used interpolate and approximate curves between a set ofn control points. Linear interpolation between two points can beachieved by using a linear Bezier curve, and approximating curvesfor higher dimensions.

A spline is a piece-wise function de�ned by polynomial functions.They are advantageous in comparison to other forms of interpola-tion as they . Multiple spline functions exist, with common variantsbeing the Hermite Spline function, the Catmull-Rom spline function[2], being used in computer graphics due to their computational e�-ciency and simplistic nature. In comparison to Bezier curves whichonly pass through the �rst and last control points when more thantwo control points are speci�ed, spline curves can pass througheach speci�ed control point - called interpolating - or near to eachcontrol point - approximating - depending on the parameterizationof the function.

Euler angles [5], generally denoted by

(� , � ,� )are three angle that, in combination, de�ne an axis and a rotation

value. They are used to represent the orientation of a rigid bodywith respect to a �xed coordinate system within a space.

Quaternions [6], given by

a + bi + cj + dk

can be used to represent rotations and orientation in space. Incontrast to Euler angles, they are not subject to gimbal lock - which

Page 4: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

The Engineering of a Dance-Notation Visualization System Through the Iterative-Waterfall Approach

Figure 1: The Iterative-Waterfall Model, displaying the feed-back loops that were used to create iterative behaviour.

results in the loss of a degree of freedom, and are more computa-tionally e�cient.

3 SOFTWARE DEVELOPMENTMETHODOLOGY

The project was developed using a hybrid-model of the Iterativeand Waterfall approaches, the Iterative Waterfall [4], pictured inFigure 1. This model provided a degree of �exibility in the develop-ment process by way of the Iterative process, but simultaneouslyenabled rigidity through the Waterfall process. The implication ofthis approach allowed the client to review the artefacts of eachiteration and to provide modi�cations to the original speci�cation,but with initial requirements provided during the requirementsgathering phase remaining largely intact. This provided equilib-rium in the development life cycle due to limited client interactionhaving been expected as opposed to an active-engagement modelcommon to Agile approaches. With respect to the software creationprocess, this allowed multiple build cycles to run concurrently.Development iterations comprised implementation, testing, andmaintenance. The implementation phase initiated the actual pro-gramming of a set of tasks. The testing phase assessed the intendedfunctionality of the system through a variety of testing techniques,and the maintenance phase was used to enhance and revise thefunctionality of the outputs of each iteration. Three iterations wereconducted during the development period. Iterations one and twowere evaluated by members of EDC. The iterative cycles that wereconducted are discussed in sections 5.6, 5.7 and 5.8.

4 REQUIREMENT ANALYSISThe requirement analysis phase was concerned with the conceptualdesign of the systemwith respect to the user requirements. The �rstsection brie�y describes the requirement-gathering phase, which isthen followed by a description of stakeholders and the architecturaldesign model used to analysis the requirements.

4.1 Requirement ElicitationRequirementswere collected fromAngus Prince during the requirement-gathering phase of development. A meeting took place to discussthe the core functionality of the system. The requirements describethe functional and non-functional aspects of the system needed toaid the teaching process.

(1) Motion playback: Movements should be displayable to theend-user. In particular, the user should be able to view boththe leader and the follower performing a sequence.

(2) Multi-angle camera: The movements of the �gure shouldbe viewable from multiple angles in order for vital limbsto be seen without occlusion as well as to complement thelearning process. A top view and side view were speci�edexplicitly.

(3) Graphical user interface: The system should be navigableusing a graphical interface that the end-user can easily ma-nipulate in order to use the application functionality.

(4) Line of dance: The line of dance should be able to be viewedby the end-user while a movement is being played. This is toallow the end-user to understand the how the �gures shouldmove relative to the space available to them.

(5) Multi-colored �gures: The animated �gures should be dis-playable in di�erent colors in order for the end-user to beable to distinguish between the leader �gure and the follower�gure during movement playback.

4.2 StakeholdersThe stakeholders in the system were identi�ed as the users of thesystem, developers of the system and maintainers of the system.The users are further de�ned as Salsa instructors.

4.3 4+1 Architecture View ModelThe 4+1 Architecture ViewModel [8] was used to create a high-levelabstraction of the system derived from the requirement analysisphase. This architectural framework was used to separate and iden-tify concerns of the system of di�erent stakeholders that were usedto inform design decisions during the iterative phase of develop-ment. The scope of the architecture is limited to the Salsationalsystem and and user interface. The following sections address eachof the viewpoints in the model and primary concerns of each of thestakeholders that they represent. The resulting software design canbe seen in Figure 9.

Figure 2: State diagram for changing the camera

4.3.1 Logical View. The logical view aims to identify the mannerin which users interact with the system. Each interaction was mod-eled using state diagrams to show the behaviour of the system in

Figure 3: State diagram for changing the �gure color.

Figure 4: State diagram for description �le loading

Page 5: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

Che�y

response to user-provided input. The provided �gures address howthe system is achieves the functional requirements of the system.

Figure 5: State diagram for playing a move

Figure 6: State diagram for playing a sequence

4.3.2 Development View. The development view shows the high-level software design of the system which can be seen in Figure7. The viewpoint is depicted using a package diagram and showsthe interactions between modules. The model addresses the is-sues of maintainability and structure of the system. It shows theseparation of components into a layered architecture, as well asthe component-wise decomposition of functionality into cohesiveunits. The diagram additionally displays the core services providedby the system in order to meet the functional and non-functionalrequirements as speci�ed by the requirements.

4.3.3 Process View. The process view describes the interactionsbetween components in the system. It was created using an ac-tivity diagram and is shown in Appendix B.1. It shows the basicengagement between users and the system in which a user loadsdescription �les and then plays a series of sequences and movesuntil completion.

4.3.4 Physical View. The physical viewpoint conveys the deploy-ment of the system within the user environment and is shown inFigure 8. This view is intended to model the conditions under whichthe system is expected to function.

4.3.5 Scenarios. Scenarios were created from user stories that weremodeled from the gathered requirements, which can be seen inTable 1. Each user story was given condition(s) of satisfaction asevaluation criteria. The scenarios can be used to illustrate the func-tioning of the elements of the architect described above.

Figure 7: Package diagram exhibiting the high-level struc-ture of component interactions in the system, as well as theseparation of components into functional layers.

Figure 8: Deployment diagram showing the physical envi-ronment of the system.

5 SYSTEM DEVELOPMENT ANDIMPLEMENTATION

This section describes the manner in which artefact speci�cationswere realised and the implementation of software engineering pro-cesses that were used during the project life cycle.

5.1 Programming LanguageC++11was used to program the system. Despite bindings of OpenGLto other languages, support for external libraries that were neededduring development were limited. Version 11 introduced severalfeatures which were used in the system. The list below describescore features of the version 11 speci�cation and their signi�canceto the system:

(1) Type inference through the auto data type(2) The override identi�er for specifying overridden virtual func-

tions in child classes(3) Default initialization of in-class values(4) std::chrono for tracking time during frame-based animation

playback(5) Operator overloading

Page 6: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

The Engineering of a Dance-Notation Visualization System Through the Iterative-Waterfall Approach

Figure 9: Salsational Class Diagram

User Story Condition(s) of Satisfaction1 As a user, I want to view the leader and follower from di�erent angles,

so that I can clearly see how certain movements are performed.The �gures can be viewed from several viewpoints that clearlyshow di�erent limb positions.

2 As a user, I want to see the leader and follower performing di�erentmovements, so that I can understand how moves are performed.

The user does not have to reinitialise the program in order to viewmultiple movements.

3 As a user, I want to be able to interact with the system using an interface,so that I can use the system easily.

The user can use valid system functions through a user interface.

4 As a user, I want the leader and follower to be drawn in di�erent colours,so that I can distinguish between them.

The user can clearly distinguish between the leader and followerwhen a movement is played.

5 As a user, I want to see the line of dance, so that I know where theleader and follower should be standing.

During a movement playback, the line of dance is drawn on screen.

Table 1: User stories and conditions of satisfaction captured during the requirements gathering phase and subsequentmeetingsafter consultation with the client

5.2 Frameworks and LibrariesOpenGL 2.1 was used to program the rendering engine, using FreeG-LUT for window con�guration and I/O processing, and GLU forutility functions. FreeGLUT was chosen to compensate for thelimitations of the original GLUT library, predominantly the imple-mentation of the main loop function. The use of legacy OpenGLover modern OpenGL was to improve support for user systemsand as performance was not an intended system design goal. The

system currently has support for loading and displaying BVH �les.This was chosen as it is most widely adopted, and most anima-tion systems support importing and exporting of this format. TheDear ImGui C++ library was used to create the user interface. TheCatch testing library was used to perform unit testing on systemcomponents.

Page 7: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

Che�y

5.3 Data Structures5.3.1 Description files. Description �les comprise Move and Se-quence �le pairs and represent movement-motion mappings for agiven dance style. The are the primarily input into the system.

5.3.2 Mathematical Types. The structures required for the systempredominantly comprised mathematical types, and operations onthose types. For this purpose, Eigen was used to provide vector,matrix, quaternion and Euler angle types. It provided n-ary vectorobjects for storing renderable object data and matrix types forperforming transformations. Quaternion and Euler angle typeswereused for processing during smoothing calculations. The library waschosen because it multi-platform, does not require to be separatelyinstalled by users, and for its minimal storage footprint.

Figure 10: Salsational architecture diagram, showingthe high-level structure of the system consisting ofconceptually-divided layers to separate the front-end andlogic.

5.4 Third-Party Services and ProcessesCMake, Trello, Git, GitHub, Travis.CI, CodeFactor, Instruments, andDoxygen were used within the development life cycle. The projectsource code was built using the CMake build system. A kanbanboard was created on the Trello and platform extensions on theplatform were used to control the software creation life cycle, andmanage sub-tasks. This enabled work �ow management, constraintidenti�cation and relationship establishment between tasks. Wherea unit of work was actively being worked on, the task was movedto an active board, and to a completed board when �nished. Gitwas used as the primary version control system. GitHub was used

Figure 11: A visualization of the BioVision Hierarchy Fileskeleton hierarchy, showing the skeletal structure for sev-eral segments. [A Method for Comparing Human Posturesfrom Motion Capture Data. Wei-Yang Tang et al. 2010.]

for remote code storage. Commits were performed irregularly. Ini-tially, the project sca�old was generated entirely from the masterbranch. Thereafter, new branches were created. In this way, themaster branch always contained a stable version of the software.Conceptually, the branches were categorised according to theirprimary functions, and su�xed with the category. A utility script,update_branches.sh, was used to synchronize every branch with themaster branch and to push changes to the remote repository. TravisCI was used for continuous integration throughout the project forbuild noti�cations and error logging. Builds were initiated uponevery push to the remote server. In this instance, GitHub. In theevent of build errors, automated emails were sent. The build ma-trix included build operations across several operating systems,and was tested for Linux and Mac compiled with g++ using Make.Automated code review was conducted using CodeFactor. Eachcommit to the remote master branch was cloned to CodeFactor andissues raised within their online interface. The CodeFactor systemranked each class using a scale of A-F. The cumulative scores ofeach class determined the overall rating of the code. The code for-mat was assessed using the Google style guide. The system containsGitHub Flavored Markdown (GFM) [1] which contains descriptionsof the system as well as sample code. Additionally, Doxygen-styledocumentation is provided. Executable builds were pro�led inter-mittently using Instruments, a built-in MacOS pro�ling tool. Whereobvious performance issues occurred, the stack trace was observedto identify bottlenecks in the system and revisions were consid-ered and made to improve the system running time. Throughoutthe development emphasis was placed on producing working soft-ware before refactoring tasks were completed, this was generallyperformed on completion of a functional class or complex method.

Page 8: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

The Engineering of a Dance-Notation Visualization System Through the Iterative-Waterfall Approach

Figure 12: A visualization of the e�ects of the arguments tothe gluLookAt function.

5.5 Software Quality CharacteristicsThe ISO/IEC 25010:2011 Standard addresses issues regarding soft-ware quality requirements and evaluation within the software devel-opment life cycle. The standard de�nes the Product Quality Modelwhich characterizes the calibre of a software product using eightattributes, each of which comprise several sub-characteristics forevaluation. Of the eight, three were used that were relevant to thecontext of the software. This was to ensure that the system hadbeen produced using modern techniques and in a robust manner.

5.5.1 Maintainability. Maintainability was achieved through theuse of modular components which interface with one another uni-formly. Provided that the interface between two interacting compo-nents remains unchanged, parts of the system can be interchangedwith one another. A consequence of the modular design is modi�a-bility of the components themselves. The division of componentsinto functional subsystems creates functional cohesion model in thesystem. Functionality is divided in terms of the user requirementsoutlined in table 1.

5.5.2 Portability. Portability was achieved by using cross-platformexternal libraries and standard library headers exclusively. Externaldependencies can be installed using package managers on Unix-based systems. OpenGL 2.1 was used to facilitate wider systemsupport over OpenGL 3.x . Installation and installation scripts canbe automatically generated through the use of CMake.

5.5.3 Usability. Usability considerations were signi�cant in thedevelopment of client application due to the computer-related com-petency of the end-users. Nielsen’s 10 Usability Heuristics for UserInterface Design were used to guide the design of the graphicalinterface to facilitate learnability of the system towards users. Thiswas re�ected in the design of the interface components. Error recov-ery was achieved by performing internal validation on user actionswhere input was required.

5.6 Iteration 1: Rendering System and Line ofDance

5.6.1 Implementation. The data for the motion data renderingprocess was acquired freely from the Carnegie Mellon University(CMU) Motion Database. Fifteen �les were used, each of whichcontained several distinguishable movements. Segmentation wasperformed internally on each �le in order to identify and name

each dance move. The segments were then veri�ed with AngusPrince during a meeting for accuracy and metadata. The accuracyvalidation involved resolving whether segmented sequences fairlyrepresented each dance move. The metadata for each segment com-prised the name of the dance move, which were recorded on abest-e�ort basis prior to the meeting and corrected during theconsultation. A third-party library, BVH11, was used to parse andrender each �le between a subset of frames. The line of dance wasimplemented as a standard grid across the viewable area and drawniteratively using the OpenGL line primitive.

5.6.2 Testing. Unit testing against the output of the BVH11 trans-formation method was performed. The global and local transfor-mation of a single segment within a sample BVH �le was manuallycalculated and tested against the library output. Further, acceptancetesting for graphical output was conducted at EDC with AngusPrince and one EDC student. Minor revisions were proposed inorder to improve the visibility of dancing �gures.

5.6.3 Maintenance. Perfective maintenance was conducted to in-crease the radius of the limbs in each �gure in order to improvevisibility of the �gures. The implementation of the coloring ofeach of the �gures was modi�ed enabling them to be dynamicallychanged during run-time.

5.7 Iteration 2: Camera and User Interface5.7.1 Implementation. The camera component was designed incollaboration with EDC. Prior to implementation, several high-levelcon�gurations for the camera were given by Angus Prince, on thepremise that the speci�ed viewpoints assisted with the learnabilityof moves. Using the GLU toolkit, a camera is parameterized usingthree vectors in order to specify a viewing transform, which canbe seen in Figure 12. Full control of the camera system was pre-sented during an evaluation session at EDC. The user interface wasconstructed in C++ using the ImGui framework. Separate interfacepanels were used with the purpose of dividing disparate units offunctionality. The viewpoints are shown in Figures 14, 15 and 16.

5.7.2 Testing. The outputs of the iteration were discussed at meet-ing at EDC. Angus Prince, one Salsa instructor, and three learnerswere present. The preset camera views, camera control system anduser interface were discussed. From the feedback that was given itwas found that the mechanism to control the camera system wasnot intuitive to use as well as the use of sliders. Improvements tothe camera system were to provide additional pre-con�gured viewsin the form of an upper- and lower-body view, the use of a mouseto control the camera over the �oating sliders. Improvements to theuser interface were suggested to make the user aware of changesto the state of the system when actions were performed.

5.7.3 Maintenance. Adaptive and perfective maintenance was con-ducted on the system following the output from the testing phaseto improve the system based on the suggestions that were given.The low-level camera controls were removed and replaced by pre-de�ned viewpoint buttons. The �oating sliders were also removed.The additional viewpoints were also added to the system.

Page 9: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

Che�y

5.8 Iteration 3: Smoothing System5.8.1 Implementation. Given two keyframes (a,b) from separateBVH motion �le sources with the same skeleton layout, we aimedto create a smooth transition between the two frames dynamically.From [10], the position of a rigid body can be speci�ed fully by thecomposition of rotations and translations, in which case we requiretwo separate interpolation functions to generate intermediate sam-ples. The rotation interpolation function would be applied to allBVH rotational channels and the translation interpolation functionto all positional channels.

Bezier curves were used for positional interpolation and Quater-nion Spherical Linear Interpolation (Slerp) for animating the rota-tion of each channel. A preliminary conversion from Euler Angleto Quaternion representation was required before interpolatingrotational channels due to BVH storing data as Euler angles andtrivially needed to be converted back to Euler Angles prior to ren-dering. The addition of additional control points was supported inorder to re�ne the blending of the transitions between two �les.

5.8.2 Testing. Unit testing for di�erent parameterizations of theBezier curve were performed with the value of t incremented inconstant intervals of 0.2 per unit test on the same parameteriza-tion. Outputs were truncated to four decimal places. Similarly, thequaternion interpolation function was tested in constant intervalsof 0.2 for t 2 [0, 1].

5.8.3 Maintenance. A �nal refactoring of the system was per-formed during this stage. The structure of the system was modi�edin order to conform to the class speci�cation in Figure 9.

Figure 13: The Salsational System

6 RESULTS AND DISCUSSIONThis system was intended to be an application of software engi-neering to the creation of a dance-notation visualization systemthat could be used within Salsa learning environment. The mostimportant measure of the success of this system is in its ability tomeet the requirements set out at the beginning of the development.Generally positive feedback was given during the meetings thatwere conducted with members of EDC which gives reason to be-lieve that the system will be able to assist Salsa instructors in order

Figure 14: Salsational camera side view

Figure 15: Salsational System top view

Figure 16: Salsational camera behind view

to accomplish their goals. Unfortunately a �nal validation meetingwas not able to be conducted to con�rm the �nal changes expressedby EDC during the second iteration, although they were completed.

Aside from supporting Salsa, the system is designed to scale tosupport other pair-based dance styles. With novel modi�cationsto the rendering process, support for arbitrary numbers of �gures

Page 10: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

The Engineering of a Dance-Notation Visualization System Through the Iterative-Waterfall Approach

can be achieved to make the system extensible to a greater class ofdance styles.

7 CONCLUSIONSSalsational is designed to be a dance-notation visualization tool,with the primary goal to support the Salsa learning process usingmotion data. Salsational improves current dance-notation visual-ization systems through the use of motion data.

7.1 Future WorkAdditions to the system include skinning and audio playback. A portof the system to Python, Unity or Maya would allow SMPL modelsto be used which would enable automatic deformable characters tobe displayed in the system. This would be advantageous as di�erentbody types would be able to be viewed and adjusted to see how aperformance would change depending on the physique of a learner.Support for additional motion data formats would be welcomed.

7.2 State of the Art SystemThe system improves on the state of the art by providing animatedmovement and dynamic sequence playback. The use of motiondata as a means to express notation is something that has not beencreated before in this �eld.

7.3 A Dance Learning ToolUsing the above, we also believe that the system can be used bySalsa instructors in order to help teach learners dance movementsin a simpli�ed manner. We believe that the use of motion data willbe e�ective within the learning process.

7.4 SmoothingSalsational can create a contiguous motion sequences from separatemotion �les by using interpolation to generate dynamic motionbetween two source motion �les. The accuracy of the dynamicmotion is improved by the additional of intermediate controls pointsbetween the two �les.

ACKNOWLEDGMENTSI’d like to extend my sincerest gratitude towards our supervisor,Maria Keet, for her continued support and warming cheerfulnessfrom start until end, and Angus Prince of Evolution Dance Com-pany his invaluable insight, dedication and enthusiasm towardsthe Salsational project. Finally I would like to thank my parentsfor the opportunity and that they have given me and the sacri�cesthey have made for my sake to ensure that I am provided for, to thebest of their abilities. I can con�dently say that I would not be heretoday if it were not for both of you.

REFERENCES[1] 2019. GitHub Flavored Markdown Spec. view-source:https://github.github.com/

gfm/#what-is-github-�avored-markdown-[2] Edwin Catmull and Raphael Rom. 1974. A CLASS OF LOCAL INTERPOLATING

SPLINES. In Computer Aided Geometric Design, ROBERT E. BARNHILL andRICHARD F. RIESENFELD (Eds.). Academic Press, 317 – 326. https://doi.org/10.1016/B978-0-12-079050-0.50020-5

[3] Paul De Casteljau. 1959. Courbes à pôles. National Industrial Property Institute(France) (1959).

[4] Dr Nitin Deepak and Dr Shishir Kumar. 2015. Flexible Self-Managing Pipe-lineFramework Reducing Development Risk to Improve Software Quality. Interna-tional Journal of Information Technology and Computer Science 07 (06 2015), 35–47.https://doi.org/10.5815/ijitcs.2015.07.05

[5] Leonhard Euler. 1776. Novi Commentarii academiae scientiarum Petropolitanae.Nr 20 (1776), 189–207.

[6] William Rowan Hamilton. 1848. XI. On quaternions; or on a new system ofimaginaries in algebra. The London, Edinburgh, and Dublin Philosophical Magazineand Journal of Science 33, 219 (1848), 58–60.

[7] K. Kojima, K. Hachimura, and M. Nakamura. 2002. LabanEditor: Graphical editorfor dance notation. In Proceedings. 11th IEEE International Workshop on Robot andHuman Interactive Communication. 59–64. https://doi.org/10.1109/ROMAN.2002.1045598

[8] P. B. Kruchten. 1995. The 4+1 View Model of architecture. IEEE Software 12, 6(Nov 1995), 42–50. https://doi.org/10.1109/52.469759

[9] Maddock Meredith, Steve Maddock, et al. 2001. Motion capture �le formatsexplained. Department of Computer Science, University of She�eld 211 (2001),241–244.

[10] Ken Shoemake. 1985. Animating rotation with quaternion curves. In ACMSIGGRAPH computer graphics, Vol. 19. ACM, 245–254.

[11] Colwyn Trevarthen and Stephen N. Malloch. 2000. The Dance of Well-being: De�ning the Musical Therapeutic E�ect. Nordisk Tidsskrift forMusikkterapi 9, 2 (2000), 3–17. https://doi.org/10.1080/08098130009477996arXiv:https://doi.org/10.1080/08098130009477996

[12] Rudolf Von Laban. 1928. Schrifttanz. Universal-edition.[13] Lars Wilke, Tom Calvert, Rhonda Ryman, and Ilene Fox. [n. d.]. From dance

notation to human animation: The LabanDancer project. Computer Animationand Virtual Worlds 16, 3âĂŘ4 ([n. d.]), 201–211. https://doi.org/10.1002/cav.90arXiv:https://onlinelibrary.wiley.com/doi/pdf/10.1002/cav.90

[14] Xueyan Zhang, Zhenjiang Miao, and Qiang Zhang. 2018. Automatic Generationof Labanotation Based On Extreme Learning Machine with Skeleton TopologyFeature. In 2018 14th IEEE International Conference on Signal Processing (ICSP).IEEE, 510–515.

A DESCRIPTION FILESThe input into the Salsational graphical system is a set of two dataexchange �les, a Move �le and Sequence �le (speci�ed in YAMLformat), and motion data �les. A Move �le contains a reference forthe moves of a variation of a dance style. Each reference consistsof the name of the move, an optional description of the move, areference to the �le path of the motion �le where the movementoccurs, and either a pair of integers specifying the beginning andending frames that show the move, or raw transformation databetween the two frames that can be used directly to render themove. Move �les can act as local or global references, as speci�edby the user. A Sequence �le speci�es valid sequences of moves,where each move is derived from the associated Move �le. The useof global Move �les facilitates a standardized knowledge-base thatevery user shares and can learn from. It also allows movementsfor a dance style to be speci�ed once, and unique sequences to bederived from the �le.

A.1 Move File Speci�cation• dance_style: de�nes the style of dance• variation: the variation of the style of dance• source_method: either external or inline• moves: an array of move objects– ref: a unique identi�er for this move

⇤ name: the name of the move⇤ desc: an optional description of the move⇤ src_ref: the relative �le path to the motion data �le⇤ begin_frame: the beginning frame of the move⇤ end_frame: the ending frame of the move

Page 11: CS/IT Honours Final Paper 2019projects.cs.uct.ac.za/honsproj/cgi-bin/view/2019/... · paper is structured as follows. In section 2, we discuss related work in dance-notation visualization

Che�y

Figure 17: Activity diagram showing the high-level function-ing of the Salsational system

A.2 Sequence File Speci�cation• name: the name of the sequence �le• mov: the �le path to an associated Move �le• sequence– ref: a unique identi�er for the sequence

⇤ name: the name of the sequence⇤ moves: the list of validated moves in the sequence

When a Sequence �le is loaded, the system locates the associatedMove �le and retrieves the list of moves de�ned in each sequence.

The system then parses the motion data for each move andcalculates the transforms for each object, stopping at the endingframe. Each transform is then stored locally and can be referencedby other components until run-time completes in order to preventredundant reloading of the same �le.

B SUPPLEMENTARY INFORMATIONB.1 Process View Activity Diagram