Lab 1c

Advanced WebGL - 3D Robotic Arm

Due: Sunday, May 24th 2020, 23:55

This lab was modeled after WebGL Programming Guide, Matsuda & Lea, Chapter 9.
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 a and b were 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 robotic arm.


Requirements:

We have set a few basic requirements for this assignment:
  1. Your robotic arm must be composed of at least 6 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 robotic arm must contain at least four levels of hierarchy.
  3. The robotc arm must have at least one base plate (can be ground), one joint, two fingers and three rotational components.
  4. The robotic arm should be able to pick up an object (collision detection), move it around and then let go of it again.
  5. 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 robotic arms 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: April 22, 2018
Lorenz Kummer / lorenz DOT kummer AT univie DOT ac DOT at
Kevin Sidak / kevin DOT sidak AT univie DOT ac DOT at