Interactive 3D Graphics and Animation
opengl image

Note: website visible only from RMIT IP addresses at this stage


Interactive 3D Graphics and Animation (aka i3d) is an introductory subject in computer graphics. It takes a "top-down" approach to computer graphics using a widely available 3D graphics library (OpenGL) to introduce the principles and techniques required for developing interactive 3D graphics applications.

The course has an emphasis on graphics programming, with a number (two or three) of assignments which usually build on each other with a final result of an interactive application or simple game. Assessment is now based entirely on practical work, i.e. no exam.

Intended Audience

COSC1186/1187 is available to second and third year undergraduates who have completed at least one semester of C programming and high school maths. It may also be taken by postgraduate students with equivalent background. Formal prerequisites are stated on the course guide. Whilst C programming may be taken at the same time, i.e. as a corequisite, doing so is not recommended.


The subject first ran in second semester, 1995, replacing CS514: Introduction to Computer Graphics. In 1996 it ran in both first and second semester. In 1997 and 1998 it ran in summer, first and second semesters. In 1999 CS541 replaced CS545 - CS541 is a 12 credit point subject whereas CS545 was an eight credit point subject, and ran in summer (HX541) and second semester. In 2000 CS541 ran only in first semester, to allow students wanting to do CS549 Real-Time Animation and 3DGames Programming in second semester. In 2001 CS541 ran in first semester only, and likewise COSC1186/1187 from 2002-2007.

In 2002 due to the Academic Management System (AMS) changeover academic terminology changed. What were "courses" became "programs". What were "subjects" became "courses". Course (was subject) numbers changed. CS541/493 became COSC1186/1187. COSC1186/1187 ran in first semester 2002 only. You may see residual references to CS541/493 around the place.

In 2003 Nigel Stewart, with assistance from Joseph Antony, taught COSC1186/1187.

In 2007 the course was substantially restructured to adopt more of the toolchain approach - where use of some modelling tools is included in conjunction with writing custom OpenGL programs. Assessment was also changed to be primarily practical work, and the previous approach of one larger project was changed to use three smaller assignments. Since then it has used either two or three assignments. This year it is two assignments, the first in 2D the second in 3D.

In 2008 Alex Holkner taught I3D.


COSC1186/1187 uses OpenGL. The primary resource for information about OpenGL is the website.

Facilities and Equipment

The main equipment for the graphics subjects are the machines in the Sutherland laboratory (14.11.38), which have Intel Core i7 CPUs and (mostly) Nvidia Geforce GTX 1060 graphics cards, running Linux.

Many moons ago the Sutherland Laboratory was populated with Silicon Graphics workstations. There are a couple of old SGI workstations sitting in the Sutherland Laboratory as museum pieces.

In 2000 the Interactive Information Institute laboratory of O2s were used.

Unix Familiarisation

Unix familiarisation is normally part of induction for new students. In case you missed it, here it is


Course Guide

part A, and look for current year e.g. 2018 for the part B.


We are using the discussion board inside Canvas, but not much else. Previously we used a Blackboard discussion board. And in the time of the ancients, we used an NNTP newsgroup rmit.cs.Interactive3DGraphicsAndAnimation (RIP).

Lecture and Tutorial Notes

Notes and other materials are available online (via the links below) and are not being printed this year.


From 2016 there has not been an exam, but an increased assignment expectation instead.

Sample past exams: 2007, 2011. Note that exams vary year to year depending on assignment work and emphasis.


Guides for this course:

OpenGL manuals:


Note: subject to update and change

Week Lecture Tutorial Assessment
1 Introduction. Drawing with OpenGL and GLUT. Graphics Pipeline Draw primitives with OpenGL  
2 Maths. Curve Drawing (Intro to Procedural Modelling). Drawing Curves (Procedural Modelling)  
3 Animation. Projectile Motion Animation/Projectile Motion  
4 Transformations, viewing and interaction.
Hierarchical modelling. robot-arm-2D.c
Transformations and Hierarchical Modelling
5 Transformations. Interaction, virtual camera and scene viewer.
6 Lectorial: assignment 1. Help with debugging. Assignment assistance. Assignment 1 (50%) due 9pm Fri week 6
7 Lighting and Materials. Procedural Modelling Lighting and Materials
8 Texture mapping, sprites and billboarding Texture Mapping. Assignment assistance.
9 Collisions Collision Detection, Road/River  
10 Hierarchical modelling. Keyframe animation Animation
11 Blending and Transparency Text Rendering, Particles, Skybox
12 History of Computer Graphics (video). Work on assignment Assignment 2 (50%) due 9pm Fri week 12

	  XHTML 1.1!