Functional reactive animation
- 1 August 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 32 (8) , 263-273
- https://doi.org/10.1145/258949.258973
Abstract
Fran (Functional Reactive Animation) is a collection of data types and functions for composing richly interactive, multimedia animations. The key ideas in Fran are its notions of behaviors and events. Behaviors are time-varying, reactive values, while events are sets of arbitrarily complex conditions, carrying possibly rich information. Most traditional values can be treated as behaviors, and when images are thus treated, they become animations. Although these notions are captured as data types rather than a programming language, we provide them with a denotational semantics, including a proper treatment of real time, to guide reasoning and implementation. A method to effectively and efficiently perform event detection using interval analysis is also described, which relies on the partial information structure on the domain of event times. Fran has been implemented in Hugs, yielding surprisingly good performance for an interpreter-based system. Several examples are given, including the ability to describe physical phenomena involving gravity, springs, velocity, acceleration, etc. using ordinary differential equations.Keywords
This publication has 11 references indexed in Scilit:
- Concurrent HaskellPublished by Association for Computing Machinery (ACM) ,1996
- TBAGPublished by Association for Computing Machinery (ACM) ,1994
- A functional animation starter-kitJournal of Functional Programming, 1994
- Interval analysis for computer graphicsACM SIGGRAPH Computer Graphics, 1992
- CMLPublished by Association for Computing Machinery (ACM) ,1991
- Comprehending monadsPublished by Association for Computing Machinery (ACM) ,1990
- The Canon Score LanguageComputer Music Journal, 1989
- LUSTRE: a declarative language for real-time programmingPublished by Association for Computing Machinery (ACM) ,1987
- SIGNAL: A declarative language for synchronous programming of real-time systemsPublished by Springer Nature ,1987
- Functional geometryPublished by Association for Computing Machinery (ACM) ,1982