Lab 3

Advanced WebGL

Due: Sunday, Dec 9th 2018, 23:59

This lab was modeled after assignment 2 of Stanfords "Introduction to Computer Graphics" class, which was offered in 2009.
Individual Effort:
No team participation is really encouraged in the case of the homeworks or the labs.
You're are not allowed to use any libraries or extra code except gl-matrix, webgl-utils.js and some helper functions in order to initialize WebGL / load shaders. Especially Three.js is not allowed! If you're not sure or want to use some library, ask the teaching assistants before.

Objectives:

While Lab 1 was rather mechanic, with the aim to help you understand the issues of transformations and their realization in WebGL, the goal of this lab is to be a bit more creative as well as further improve your understanding of transformations You will do so by building and animating a kinetic sculpture.


Requirements:

We have set a few basic requirements for this assignment:
  1. Your sculpture must be composed of at least 10 shapes (they do not have to be unique). These shapes can include basic primitives (like spheres, cylinders, etc). More complex shapes could also be modeled in a modeling program, such as the open source Blender, and loaded into our program.
  2. Your sculpture must contain at least 4 levels of hierarchy.
  3. The animation should move at least two components (in two different hierarchies) of your sculpture. It should also be physically motivated (that is, there are no magical, free-flying shapes).
  4. Please take and attach a screenshot of your sculpture. Identify your sculpture's first four levels of hierarchy.
Other than this, you're free to design your sculpture any way you like! Here are some possible ideas to get you started:


Grading:


Hints

While this lab is intentionally free-form, you might find some of these hints helpful. However, there are many roads that lead to Rome, as they say!

Submission



Grading Criteria

Grading the labs will be based on the following:

In order to get a full mark, you need to do all of the assigned tasks AND adhere to to lab procedures while creating readable and efficient code. I.e. if you accomplish only 70% of the tasks correctly, but you do not adhere to lab procedures, your final mark will be 70*(1-0.05) = 66.5%.


Last modified: November 11, 2018
Manfred Klaffenboeck / manfred DOT klaffenboeck AT univie DOT ac DOT at