View Full Version : Strange Behavior (Animation) Entry: David Yip

06 June 2007, 05:06 PM
David Yip is entered in the "Strange Behavior Challenge" update: View Challenge Page (

Latest Update: Concept Sketch or 3D pre-visualization: Monad process (

06 June 2007, 08:43 PM
Once again, it is also on. :O

06 June 2007, 09:03 PM

This is gonna be awsm.

06 June 2007, 02:25 AM
wooooo rock it!

07 July 2007, 05:24 AM
Guess I'm a bit late to the party...but better late than never, I guess.

I've been spending the last month learning the Haskell programming language (, and it's been rather engaging. One of the more mysterious constructs in Haskell are monadic computations, which have engaged me so much that I decided to try and represent them in graphical motion.

They really aren't strange as in "weird" -- they're nothing really mysterious at all, once you see how they work. (Related note for the curious: I recommend Cale Gibbard's excellent article "Monads as Containers (", which greatly advanced my understanding of the concept, and very much influenced some of my visual representations. The article assumes some knowledge of Haskell syntax and basic concepts, but it's nothing too difficult to pick up by clicking around the Haskell wiki.)

Rather, I think they're strange in the sort of behavior they manifest: magically (on a superficial level, anyway) sequencing computations and stuff like that. I think they can exhibit strange behavior (ahh, the topic at last!) in the "wonderous" sense. Take, for example, a dedicated scientist who has spent decades researching a single subject. He or she will know a great deal on his or her subject matter, but they keep on going. Why? Probably because they find the subject intriguing enough to keep pressing further -- because they keep finding surprises and want to know more. That sort of "strange".

And now for sketch presentation time. These are quite bad, and I apologize for that. My primary motivation for participation is to greatly improve my skills.

07 July 2007, 05:24 AM (

The general idea that I'd like to present. The "?" is where I'm going to place my character, which I'm still not entirely sure about. I know what I want to do; I'm just having great difficulty putting it on paper (and, for that matter, modeling it). Keep on trucking, I guess.

07 July 2007, 05:32 AM (

A sketch of a monad computation.

The monad being examined is the List monad; I plan to do unique visualizations for each monad. List, however, is fairly easy to visualize, so that's the first one I tried.

It may be useful to refer to Monads as Containers ( for a more thorough explanation of monad internals.

Steps are as follows:

(1) and (2) Values (spheres) are pumped into the monad.
(3) The computation is performed on each value. Being a purely functional language, Haskell doesn't actually mutate any values, so I decided to represent this by creating new objects. I've decided to visualize this with a sort of machine. The design was loosely inspired by an umbrella ( I had laying around.

(4) is the post-mapping process, which generates one container (monad) for each value. The machines are gone.

(5) is the joining process, which joins each container into one container. I'm not sure how I want to animate this, but I do want to represent it as some sort of collapsing action, which is roughly indicated in the sketch. More to come on this subject.

07 July 2007, 07:45 AM
glad to see you posted some stuff :D Look forward to seeing more!

07 July 2007, 05:47 AM
Strange concept (what a good start given the theme :) ). Good luck!

08 August 2007, 03:01 AM
@Chiko, Mibus: Thanks! I'll try not to disappoint :)

CGTalk Moderation
08 August 2007, 03:01 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.