Archive | homework RSS for this section

homework 6

Take some time and get familiar with soda constructor:

http://en.wikipedia.org/wiki/Soda_Constructor
http://sodaplay.com/creators/soda/items/constructor
http://www.cs4fn.org/alife/starterfor10.html

make a creature.

In code, try to make experiments using vector fields and particle particle interaction.

a) try to model a natural phenomenon, such as smoke, water, waterfalls, puddles, etc. What interesting combinations of forces can you come up with?

b) try to create a game using particle particle interaction or vector fields.

c) design something that affords interaction w/ out using a keyboard and mouse, think about computer vision, sound input or other ways of getting human / gestural input into the system.   Think about leaving the screen.  Carefully document your experiments.

advanced:

working alone or in a group, can you design an algorithm for FASTER particle particle interaction?  It must run at 30 FPS in realtime.  Think about how spatial division can help, and how simple things, like sorting can be very effective.  I am very happy to help with this.

all the particles now all repel or attract each other with the same radius. Can you make them have different radii, and still get attraction and repulsion working?   Can you visualize all the forces that are operating per frame?  ie, which particles are within range of each other.  Finally, can you make the particle particle interaction fast (see the second example from class)?

homework 5

Non code:

take a video of “real world particles”

see for example, http://vimeo.com/28732551

Code:

(a) create a looping fireworks animation (non interactive). You will need to reset or restart particles every so often.
(and then we’ll figure out how to save this as a screen saver for your mom!)

(b) since you know how to position things in a circle using the formula:
x = x_orig + radius * cos (angle);
y = y_orig + radius * sin (angle);
think about how you could use sinusoidal information to start all the particles with some interesting positions / velocities. Instead of using random, use sinusoidal information (in any way you want) to make the starting positions/velocities of these objects interesting.  can you use sin/cos to make the movement or drawing of the particle more interesting?

(c) Besides evidence to the contrary, particles don’t have to be just circles!  you can draw them however you want.  Can you create an interesting effect with transparency or by using images?   Can you use parameters, like velocity to control the way these objects are drawn (like, they get smaller as they slow down, or more transparent, using angle of the velocity to rotate, etc).  Think about trying to create a natural phenomenon or make something really nice looking.

advanced:

(d) hook up the drawing code (from the lissajous example) to a particle so that the particle draws a trail of where it has been. see if you can make this trail fade out (like a comet) : ) Use alpha or some other method…

(e) Make a funky, expressive drawing tool with particles.

(f) make a ball droppings clone (see josh nimoy’s version http://balldroppings.com/)

homework 4

this homework is optional, meaning, you can do it if you want and get some extra credit.  I strongly recommend you do these optional things, you will get more out of the class and it will challenge you.  Please also try to document your solutions by recording a movie – it’ll help your pages and also your classmates.

a) using the point recorder code, create multiple point recorders instead of just one.  Every time you draw, create another point recorder.  Create a clear function.  Can you use these multiple point recorders to create something interesting ?  shoot a short video.

b) right now the playback of the point recorder is just one point (at time t), can you create a second point (at time time-1.0, ie time minus one second, for example) as in Scott Snibbe’s motionsketch ?  It would be nice to use the total duration to figure out to space out multiple playbacks so they are equally divided.

c) in one example, point recorder is use to control the property of sound synthesis. can you use it to control some other properties of media, like playback position of a movie or opacity of some images?  Think about all of the parameters you can get from the playback unit and how you can use them.  Make some playful, creative system.

homework 3

a) make a composition using the animation techniques that is a tribute to john whitney.  See for example:

profile, infovideos,  catalog (made in 1961! non-digital!) , video we watched in class

b) Since we talked in class about this idea of a relationship between sound and visual synthesis (and harmony) find a short piece of music (can be any duration as long as there are multiple notes – a short snippet, or a long song) and make a composition that is a visual equivalent of that sound.  Think about how the make a visual equivalent using the techniques we talked about this week.   Post both the sound and the resulting animation.  Try to bring out some essential truth of the audio through the visualization.

c) try to use sin and cos to emulate a natural phenomenon (ie, something you see in the natural world).  be sure to provide some documentation (video / picture / text) of what this phenomenon is.

d) extend the xeno / atan2 code, making a creature which follows the mouse. think of how you could use sinusoidal animation techniques to give the object some “life” – breathing, blinking, etc.

(advanced)

e) since we talked about amplitude modulation in relationship to sin/cos animation, see if you can implement visual equivalents of other synthesis techniques, such as FM synthesis (modulating the carrier frequency) or additive synthesis.   Make an interesting composition with what you’ve implemented.

finally, remember:   every homework assignment is an opportunity for genius.

homework 2

animation experiment:
Based on the work of Robin Roades, make an animation with still images.  If you can, cross fade between them.  Can you tell a story with just a few frames?  Think especially of using people and or mixing scales.   Don’t doctor the images, and keep the camera stationary.
code:
a) fastest non moving speed
find the fastest speed for the square to move across the screen and have the motion be imperceptible. Time how long it takes for the square to move across the screen and measure the physical (not pixel) distance. What is this speed in inches/second ? for kicks, What is it in in mph?
b) fastest still perceptible speed
find the fastest speed for the square to move across the screen and have the motion be still perceived as continuous (not discrete jumps). Time how long it takes for the square to move across the screen and measure the physical (not pixel) distance. What is this speed in inches/second ? What is this rate in mph?
c) click to change pta and ptb
make an application where whenever you click, you change either the ptA position or the ptB position to the mouse position, alternating every time you click.
d) shaper controlls something else besides position
Make the shape code control another property of the object, such as its size or color.  Make the nicest composition that you can.  Try to make it elegant and organic.
(for the xeno code)
e) multiple xenos
make a series of xeno objects which follow the mouse, each at different rates. give them slightly different colors so that you can perceive them as independent objects.   you will have to modify the rectangle object so that they can have unique colors.
+
bonus homeworks
f) multiple xenos trail
If you are really feeling like showing off, make an array of xeno objects where the first element follows the mouse, the second element follows the first, the third follows the second, etc.
g) shapers via penner
in class, we used powf to shape a linear signal.  there are more advanced ways to do this (for easing and out, and for snap to, etc).  Some of these have been collected by robert penner as “easing equations”.  some folks have ported this from AS to c++, you can find them here & here
try to hook them up and make a compelling composition with linear and nonlinear animating elements.
No Comments
Ninja level
Build a “timeline” class that allows you to animate between different parameters at different times.  For example, you can tell an object, be here at two seconds, be here at 6 seconds, and here at 10 seconds, and using a cubic equation to get there.  You can also add a callback system, so that your app gets notified as milestones / keyframes are hit.

homework 1

  1. make a flip book.  Please use a “thicker” type sketchbook.  I recommend the square sketchbooks from NY Central Art Supply.
  2. make three recordings (using a handheld camera that’s sationary) of three different scenes which have interesting motion.  Pick one point to watch during the video, and sketch out it’s motion path.  Try to find both rhythmic (repetitive) and organic motions.
  3. draw your name using openframeworks.  upload a screenshot of your app, and a zip of the source code or project.