September 27, 2006

Approaches to Visual Programming

by Andrew Stern · , 3:51 am

As I mentioned I’m currently developing authoring tools to be used for creating character behavior for interactive drama. Depending on how this is approached, this can overlap quite a bit with visual programming. I’m in the middle of researching people’s various approaches to visual programming, paying particular attention to user interfaces. (I’m still experimenting with what extent our authoring tools will expose the programming layer below, but I’d like to see how others have attempted to visually represent programs.)

In doing so I came across an very interesting ongoing project called Subtext by a research fellow at MIT named Jonathan Edwards, whose goal is nothing less than a complete revolution of how we program, to make a “fundamentally better programming language”. He’s created a pair of geekily entertaining demo movies that demonstrate a UI for programming in Subtext, definitely worth 30 minutes of your time.

Here’s a screen capture of Subtext from the movie, just to give you a flavor:

Here are three other (more conservative) visual programming examples.

Alice, by Randy Pauch and team at CMU:


(Here’s a recent discussion by Jonathan Edwards about making Subtext more Alice-like.)

 

The above Alice is not to be confused with Alicebot, which now has a new GUI authoring tool:

 
Behave!, by Michael Travers while he was a grad student at MIT, developed for use by museum-goers at the Virtual Fishtank exhibit at the Boston Computer Museum:

Anyone know of any other examples worth looking at? I’m particularly interested in how procedures are represented visually; I’m not very interested in seeing flowchart or state machine-like editors, since our character behavior goes beyond state machines.