I've used GL_LINE_STRIP, GL_TRIANGLES, GL_LINES, GL_POLYGON to build shapes of human, aquarium, fish, lamp, circle, rain and window.
To animate objects I've used glTranslatef, glRotatef methods encapsulated in glPushMatrix and glPopMatrix methods.
To change the shape of object (fish) I've used array to define coordinates of fish before and after mutation and used tween method to gradually morph the object.
There are 4 scenes in the animation and the change of scenes is triggered by certain events such as position of objects or counters
I've used and modified the code provided by the tutor to generate rain, spray and explosion effects for the purpose of my project.
There are 2 viewports defined by adding glViewport method: window and inside of the room
The animation uses double buffering by adding glutSwapBuffers at the end of the display function and changing glutInitDisplayMode to GLUT_DOUBLE
I've used renderSpacedBitmapString method to draw the final ad message on the display
The animation time is approximately 45 seconds.
The lightbulb is changing colours giving flashing effect, array has been use to store the values of colours.