An empirical study of programming paradigms for animation

Author(s): Jan-Peter Krämer, Michael Hennings, Joel Brandt, Jan Borchers
Venue: International Conference on Software Engineering
Date: May 2016

Type of Experiement: Controlled Experiment
Sample Size: 14
Class/Experience Level: Undergraduate Student
Participant Selection: computer science university students
Data Collection Method: Observation, Code Metric, Project Artifact(s)


This paper talked about creating graphical animations using programming, specifically artistic animations. The study talked about the different programming tools programmers can use to implement graphics: graphical tools (like Blender), and textual tools (like OpenGL). Even though graphical tools may be easier for the programmer to use, textual tools are still relevant due to their allowance of adding more detail and specifications to the animation. Because of the relevance of textural tools, the authors did this empirical study to help develop better tools and libraries for textual graphics tools. They did a laboratory study on subjects with two different types of setup: procedural and declarative. The procedural paradigm is when a developer updates the properties objects in methods that are called during each frame of the scene. Thus as time moves on, an object may more or change color. The declarative paradigm is when the developer updates an object properties using keyframes. Each keyframe defines an objects property with time.
Each developer in the study was given 5 tasks to move an animated ball in various ways (such as bouncing it up and down, being one task). They were also each assigned to do so in a declarative or procedural way. The procedural programmers used JavaScripts native graphics library, and the declarative programmers used a JavaScript keyframe based animation library. 14 computer science students participated in this study, and it was found that the student using the declarative animation library did the five tasks 2.4 times faster. The authors concluded more declarative frameworks should be implemented in computer graphics for programmers.