Homework 3, due Wednesday, Sept 24.

This assignment is all about input and interaction, and it's wide open. As we discussed in class, come up with an interesting way for the user to interact. You can use any combination of the primitive call-back methods mouseMove, mouseDown, mouseDrag, mouseUp, keyDown and keyUp, as well as any other methods you'd like.

As we've discussed, I'd like to see you emphasize the interplay between the frame-by-frame time of the animated world and the parallel time of the user's actions.

For example, you might create an animated scene in which something interesting happens (playing ball, falling snow, planets orbiting, birds flying), and then allow the user to interact with this world. Think of things you'd be interested in seeing, or that you think would be fun to build.

For example, the user might intervene by dragging various objects around. An object being dragged should probably stop animating itself until the user has released it in its new position.

You could also try different types of gestural input. For example, you might want to allow the user to create objects by drawing them with the mouse.

You might want to add some sort of "modal" input, whereby a user can click on various options in a menu (moving, drawing, changing color, etc).

In your description on your web page, you should explain what cool interaction features you've implemented, so the grader is sure to know all the wonderful work you've done.