COS 426, Spring 2011
Nader Al-Naji, nbal



List of Implemented Features

I believe that I have implemented the following features, which are worth a total of 27 points: General note:
When my assignment 1 was graded, I lost some points because
something crashed in cygwin. All of this works and it shouldn't be a problem again
but if it is, I will be happy to show you it working on my computer or on
Vova's. Or you could just look at the code-- it's pretty straightforward.
Thanks for your consideration!



Demonstration of Implemented Features

First step


oneparticle.scn

cannonball.scn

dragrace.scn
Standard Euler integration with simple forces produced this output.

Particle sources


sources.scn
I implemented four sources: mesh, line, sphere, and box. All particles
are generated uniformly on the surfaces of the objects that generate them.

Particle sinks


spheresink.scn

boxsink.scn

meshsink.scn
I implemented three sinks: box, sphere, and mesh. All sinks attract particles
to them in the standard way and delete particles when they hit their surface.
As a general note, some particles may end up orbiting the sink due to the
nature of the particle's velocity and the sink's force. This is to be expected.

Particle simulation


differentlifetimes.scn
Didn't do too much in this area; just implemented lifetimes for particles.

Collision detection


collisiondetection.scn
This is implemented in general for all scenes. This is a simple demonstration; the complex interactions in cloth.scn below are more thorough.

Particle interaction


opposites.scn

rope.scn

cloth.scn

flocking.scn
Gravitation and spring forces were standard from lecture. Getting spring interactions
to work with collisions was a little trickier. Note that the assignment page states

"To get an additional two points, you can create a 2D mesh of springs representing an
elastic cloth and simulate its motion under non-trivial forces (e.g., collisions with
shapes in the scene)."

Boid forces take into account and correct:
1) their position relative to the average
2) their velocity relative to the average
3) collision with objects in the scene (with rays)
Note 1: because collision detection is implemented, as per the assignment spec, using
rays, sometimes the boid doesn't see the object until it's too late and hits it anyway.
This is rare, but it is a drawback of shooting a ray, which doesn't accurately represent
the peripheral vision of real-world organisms.
Note 2: In order to get the spring scenes to work with the -recordandquit option,
you MUST ALSO SPECIFY THE -slow OPTION.
In the same way, in order to get the boid scenes to work, you MUST SPECIFY THE
-boid OPTION.
Otherwise, they will not work properly.


Art Contest Submission


A magic wand!


Feedback

How long did you spend on this assignment?
Not too long.
 
Was it too hard, too easy, or just right?
Too easy.
 
What was the best part of the assignment?
Making my magic wand.
 
What was the worst part of the assignment?
Nothing.
 
How could it be improved for next year?
I wish it were out of 20 points..