[Haskell] Announcing Pan# 1.0

John Peterson peterson-john at cs.yale.edu
Wed Mar 31 20:03:12 EST 2004

The difference between Pan and Fran is that Pan is stateless: the
image is a pure function of the current control settings (system
stimulus) rather that a stateful signal function as in Yampa or Fran.
So you couldn't really do the infamous paddleball game or make use of
switching or integrals or other stateful signal functions.  If you're
clever you can factor out the state - for example, you could do the
"bouncing ball" example by finding a closed form solution to the ball
trajectory instead of using a stateful integrator at runtime.  But you
couldn't do something like the traffic light program (an animation
which switches colors with each mouse click) since there's no way to
remember the current color of the light on each button press.

That being said, you can still express many animations in a natural
way - it's really the interaction that can't be done.  There are many
stateful control objects in Pan - it's just that the state lives in
the controllers (such as the position of the sliders or movable
points) rather than in the animation language.

One of the cool things we've added is the ability to take event
streams generated by other programs (in this case Haskore) and use
these to drive an animation.  So you could express something in
a stateful way, either in Haskore or Yampa or whatever, and save the
generated event streams for animation by Pan.  Unfortunately I don't
have a releasable version of Haskore + Pan event stream output stuff
yet but it should be ready soon.


More information about the Haskell mailing list