The contemporary computer scene is dominated by the graphical user interface (GUI). For almost every task, from manipulating text, imagery, sound, video, to configuring a computer's operating system (e.g. control panels), from searching for and organizing information (e.g. the web), to the process of programming (e.g. integrated development environments), there are special purpose GUI tools supporting the task through analogies to embodied interaction with physical objects. But no tool is neutral; every tool bears the marks of the historical process of its creation, literally encoding the biases and viewpoints of its creators, offering affordances for some interactions while making other interactions difficult or impossible to perform or even conceive. While the ability to program does not bring absolute freedom (you can never step outside of culture, and of course programming languages are themselves tools embedded in culture), it does open up a region of free play, allowing the artist to encode his/her own biases and viewpoint. What graphical tools would you create?
Create your own drawing tool, emphasizing algorithmic generation/modification/manipulation.
Explore the balance of control between the tool and the person using the tool. The tool should do something different when moving vs. dragging (moving with the mouse button down).
The code for your tool should use at least one class.
Describe in a paragraph what your editor will accomplish by the due date. Due: Thursday, October 5. If the Prof thinks it is too much or too little, we will rapidly negotiate a level of work that is appropriate to your current skills.
Deliver the editor.
Due: Tuesday, October 17