Every Animation Should Have a Beginning, a Middle, and an End

A Case Study of Using a Functor-Based Animation Language
  • Kevin Matlage
  • Andy Gill
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6546)


Animations are sequences of still images chained together to tell a story. Every story should have a beginning, a middle, and an end. We argue that this advice leads to a simple and useful idiom for creating an animation Domain Specific Language (DSL). We introduce our animation DSL, and show how it captures the concept of beginning, middle, and end inside a Haskell applicative functor we call Active. We have an implementation of our DSL inside the image generation accelerator, ChalkBoard, and we use our DSL on an extended example, animating a visual demonstration of the Pythagorean Theorem.


Active Object Active Language Pythagorean Theorem Animation System Primitive Shape 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Peyton Jones, S. (ed.): Haskell 98 Language and Libraries – The Revised Report. Cambridge University Press, Cambridge (2003)zbMATHGoogle Scholar
  2. 2.
    McBride, C., Patterson, R.: Applicative programing with effects. Journal of Functional Programming 16(6) (2006)Google Scholar
  3. 3.
    Matlage, K., Gill, A.: ChalkBoard: Mapping functions to polygons. In: Morazán, M.T., Scholz, S.-B. (eds.) IFL 2009. LNCS, vol. 6041, pp. 55–71. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  4. 4.
    Elliott, C.: From functional animation to sprite-based display. In: Gupta, G. (ed.) PADL 1999. LNCS, vol. 1551, p. 61. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  5. 5.
    Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. Journal of Functional Programming 13(2) (2003)Google Scholar
  6. 6.
    Elliott, C.: Programming graphics processors functionally. In: Proceedings of the 2004 Haskell Workshop. ACM Press, New York (2004)Google Scholar
  7. 7.
    Findler, R.B., Flatt, M.: Slideshow: functional presentations. J. Funct. Program. 16(4-5), 583–619 (2006)CrossRefzbMATHGoogle Scholar
  8. 8.
    Arya, K.: Processes in a functional animation system. In: FPCA 1989: Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture, pp. 382–395. ACM, New York (1989)CrossRefGoogle Scholar
  9. 9.
    Hudak, P.: An algebraic theory of polymorphic temporal media. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 1–15. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  10. 10.
    Elliott, C., Hudak, P.: Functional reactive animation. In: International Conference on Functional Programming (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Kevin Matlage
    • 1
  • Andy Gill
    • 1
  1. 1.Information Technology and Telecommunication Center, Department of Electrical Engineering and Computer ScienceThe University of KansasLawrenceUSA

Personalised recommendations