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 e#ectively 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 di#erential equations.
Citations
|
385
|
Comprehending monads
– WADLER
- 1992
|
|
201
|
Lustre: a declarative language for programming synchronous systems
– Caspi, Pilaud, et al.
- 1987
|
|
197
|
CML: A Higher-Order Concurrent Language
– Reppy
- 1991
|
|
155
|
Concurrent haskell
– Jones, Gordon, et al.
- 1996
|
|
118
|
Interval Analysis For Computer Graphics
– Snyder
- 1992
|
|
59
|
98: A Non-strict, Purely Functional Language
– Haskell
- 1999
|
|
57
|
the Dataflow Programming Language
– Lucid
- 1985
|
|
38
|
TBAG: A High Level Framework for Interactive, Animated 3D Graphics Applications
– Elliott, Schechter, et al.
|
|
29
|
Haskore Music Notation -- An Algebra of Music
– Hudak, Makucevich, et al.
- 1996
|
|
24
|
Functional geometry
– Henderson
- 1982
|
|
18
|
Pictures: A simple structured graphics model
– Finne, Peyton-Jones
- 1995
|
|
15
|
A Functional Animation Starter-Kit
– Arya
- 1994
|
|
15
|
The Canon score language
– Dannenberg
- 1989
|
|
15
|
Le Guernic, and Loic Besnard. Signal: A declarative language for synchronous programming of real-time systems
– Gautier, Paul
|
|
11
|
Don't fidget with widgets, draw
– Bartlett
- 1991
|
|
10
|
A Brief Introduction to ActiveVRML
– Elliott
- 1996
|
|
9
|
A functional language for sound synthesis with behavioral abstraction and lazy evaluation
– Dannenberg, Fraley, et al.
- 1992
|
|
7
|
Lambda calculus and music calculi
– Orlarey, Fober, et al.
- 1994
|
|
7
|
Functional 3D Graphics in C++ - with an Object-Oriented, Multiple Dispatching Implementation
– Schechter, Elliott, et al.
|
|
6
|
A functional approach to animation
– Arya
- 1986
|
|
6
|
Zilles. Graphics in an applicative context
– Lucas, Stephen
- 1987
|
|
3
|
The Escher Document Imaging Model
– Zilles, Lucas, et al.
- 1988
|