plate

a visual programming environment

view quicktime movie (~2M)

Plate is one of a series of dynamic visual programming environments being designed to make computation more accessible and intuitive. Plate integrates all the common programming interfaces into a unified visual space.

This projects begins with the assumption that a text-based language is an appropriate and powerful method of representing a program. Unlike a traditional text-editor, in which any series of letters may be generated, Plate breaks up the programming language elements (which are generally few in number) into immutable plate objects. When rearranging these plate objects into meaningful structures, the user is constrained so that only syntactically correct statements may be composed. This effectively eliminates the plentiful syntax errors which are such a bane to both novice and experienced programmers.
Plate also has a built-in runtime evaluation environment which allows the user to either play the program at full speed, or step through it one plate at a time. When stepping through the code plate by plate, the user may stop at any point and examine the value contained in any variable plate, simply by clicking on and opening it. The runtime evaluator has the additional feature that any part of the code may be altered while the program is running.

While Plate is currently designed around a custom programming language, one could adapt it to use a traditional programming language without much difficulty. Perhaps, more interesting would be adapting Plate to deal with values which cannot be represented simply in a text-based language.

jared schiffman
aesthetics & computation group
mit media lab