Wednesday, June 10, 2009

About MediaScripting (Note 1)

The title for this 'blog comes from one of my main research projects, which I call MediaScript. The goals of this project are to explore the ways in which interactive scripting of media applications (and other applications) can improve the user’s experience. Our initial experiences with MediaScripting have been in the context of an interactive Scheme-based scripting environment for The GIMP as well as a prototype (and no-longer-working) environment for InkScape. (Yes, the GIMP comes with a Scheme-based scripting environment called ScriptFu. No, it's not very friendly. MediaScript is much friendlier.)

The GIMP-based environment is implemented using embedded PLT Scheme in a GTK+2 GUI, all glued together with C. (In an earlier post, I mention the problem of passing pointers between Scheme and C. This is where it's happening.)

Those experiences suggest a variety of reasons that a designer (that is, someone using one of these graphical design applications) might want to interactively script:
  • Scripting provides additional precision when such precision is appropriate. For example, one might want to write a script to draw a line from exactly here to exactly there.
  • Scripting makes it easier to repeat similar actions. After doing a sequence of operations, one might want to repeat the operations at a different location, in a different scale, or perhaps even at a different orientation.
  • Scripting makes it easier to explore design alternatives. Given an initial drawing, one can easily write a script to generate a variety of similar alternatives, either by varying the original drawing systematically (e.g., placing each component nearby) or randomly.
  • Scripting unlocks new capabilities. We’ve seen designers familiar with the GIMP get very excited after seeing how easy it is to make a brush that changes while they draw.
  • Scripting can open new perspectives. In the GIMP+MediaScript application, it is possible to represent an image as a function from position to color, which allows one to quickly produce interesting and novel color blends.
So, when I write about MediaScript (which will be just one of the topics for this 'blog), I'm talking about this system. I'll discuss the architecture (or parts thereof), our uses of MediaScript in teaching introductory computer science, and more.

No comments:

Post a Comment