Abstract
Animation is a temporally continuous phenomenon, but is typically programmed in terms of a discrete sequence of changes. The use of discreteness serves to accommodate the machine that is presenting an animation, rather than the person modeling an animation with the help of a computer. Using a continuous model of time for animation allows for natural specification, avoiding some artificial details, but is difficult to implement with generality, robustness and efficiency. This paper presents and motivates continuous modeled animation, and sketches out a naive functional implementation for it. An examination of some of the practical problems with this implementation leads to several alternate representations, all of which have difficulties in themselves, some quite subtle. We hope that the insights and techniques discussed in this paper lead to still better representations, so that animation may be specified in natural terms without significant loss of performance.
Preview
Unable to display preview. Download preview PDF.
References
Kavi Arya. A functional approach to animation. Computer Graphics Forum, 5(4):297–311, December 1986.
John Backus. Can programming be liberated from the von Neumann style? Comm. ACM, 8:613–641, 1978.
Byron Cook and John Launchbury. Disposable memo functions (extended abstract). In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, page 310, Amsterdam, The Netherlands, June 1997.
Conal Elliott. Modeling interactive 3D and multimedia animation with an embedded language. In The Conference on Domain-Specific Languages, pages 285–296, Santa Barbara, California, October 1997. USENIX. WWW version at http://-www.research.microsoft.com/~conal/papers/dsl97/dsl97.html.
Conal Elliott. Composing reactive animations. Dr. Dobb's Journal, pages 18–33, July 1998. Expanded version with animated GIFs: http://www.research.-microsoft.com/~conal/fran/tutorial.htm,tutorialArticle.zip.
Conal Elliott. From functional animation to sprite-based display (expanded version). Technical Report MSR-TR-98-28, Microsoft Research, July 1998. http://-www.research.microsoft.com/~conal/papers/spritify/long.ps.
Conal Elliott. Functional implementations of continuous modeled animation (expanded version). Technical Report MSR-TR-98-25, Microsoft Research, June 1998. http://www.research.microsoft.com/~conal/papers/plilpalp98/long.ps.
Conal Elliott and Paul Hudak. Functional reactive animation. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, pages 263–273, Amsterdam, The Netherlands, 9–11 June 1997.
John Peterson et. al. Haskell 1.3: A non-strict, purely functional language. Technical Report YALEU/DCS/RR-1106, Department of Computer Science, Yale University, May 1996. Current WWW version at http://haskell.org/report/index.html.
John Hughes. Lazy memo functions. In J. P. Jouannaud, editor, Functional Programming Languages and Computer Architecture, volume 201 of LNCS, pages 129–146. Springer Verlag, September 1985.
Adobe Systems Incorporated. POSTSCRIPT Language: Tutorial and CookBook. Addison-Wesley Publishing Company, Inc, 1991.
Simon L. Peyton Jones, Cordelia V. Hall, Kevin Hammond, Will Partain, and Philip Wadler. The Glasgow Haskell compiler: a technical overview. In Proc. UK Joint Framework for Information Technology (JFIT) Technical Conference, July 93.
Arch D. Robinson. The Illinois functional programming interpreter. In Proceedings SIGPLAN '87 Symposium on Interpreters and Interpretive Techniques, pages 64–73. ACM, ACM, June 1987.
Simon Thompson. A functional reactive animation of a lift using Fran. Technical Report 5-98, University of Kent, Computing Laboratory, May 1998. http://www.cs.ukc.ac.uk/pubs/1998/583/index.html.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Elliott, C. (1998). Functional implementations of continuous modeled animation. In: Palamidessi, C., Glaser, H., Meinke, K. (eds) Principles of Declarative Programming. ALP PLILP 1998 1998. Lecture Notes in Computer Science, vol 1490. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0056621
Download citation
DOI: https://doi.org/10.1007/BFb0056621
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65012-6
Online ISBN: 978-3-540-49766-0
eBook Packages: Springer Book Archive