Assignment title: Information
School of Computing, Engineering and Mathematics
Computer Graphics - 300093
Autumn 2016: Assignment 2
Due by 11:59pm on Monday 23rd May 2016 (Week 14)
Students must demonstrate your work during the usual tutorial session at Week 14
A Three-Dimensional Visualization Tool
Assignment Details
For this assignment, you are required to develop a 3D program that provides a simple
visualization and analysis platform. The new tool reads a data file and then generates the
corresponding display for the information. The format of the provided data file (data.csv) as
followings:
- The first line contains the titles of the fields (as columns).
- All other lines contain the data corresponding to each column, including
o Person ID indicates the ID of a person.
o Cluster indicates a cluster (or a group) that a person belongs to. There are 5 clusters in
this assignment.
o Gender is either male or female.
o Year of Birth is the year when the person was born.
o Alive is either Yes or No.
o Nominations indicate the number of nominations for the person (range within [0, 8]).
o Position_X, Position_Y and Position_Z are the position of the person in 3D space.
Note, the value of Position_X, Position_Y and Position_Z are ranged within [0, 1000].
Technically, the new tool is required to have the followings functions:
Pass level (up to 64%):
- Read and get the information from the data file,
- Draw a 3D view of all people on the screen. Each person can be represented simply as a
sphere whose position is relatively correspondent to its position_X, position_Y and
position_Z,
- Include at least 2 basic graphical properties for the shapes, such as: sizes to representing the
difference in the Year of Birth, and colours to representing the clusters.
- Include a camera,
- Include simple interaction such as rotation and camera's rotation for the entire scene,
- Add some basic light.
Credit level (up to 74%):
- Include all functions of the pass level, plus
- Most of the properties should be visually represented, such as a gender can be displayed with
either ♂ (a male) or ♀ (a female) symbol. The property of attribute "Alive" should be
illustrated in the visualization,
- The implementation of picking a person. When the person is picked, its colour is changed in
order to highlight the selection, e.g. to either a darker or brighter colour.
Distinction level (up to 84%):
- Include all functions of the credit level, plus
- Provide the ability to pick a person and move to a new position,
- The property of attribute "Nominations" should be illustrated in the visualization
- Use object-oriented programming structure and have pretty coding style and comments,
High Distinction level (up to 100%):
- Include all functions of the distinction level, plus
- Provide enhancements in the graphic with a more realistic look, such as
o Replacing the simple spherical symbol by a more realistic person object.
o Replacing the colours by texture mappings.
Any figures beyond the requirements are welcome and they might be considered as extra
contributions.
Deliverables
You are only allowed to use Processing language to code your solution. Your program must be
executable. It is an advice that you need to keep multiple versions in case of unforeseen
problems. You are allowed to demonstrate your program on your laptop. You might modify the
code from processing.org, include external libraries, or related sources with a proper citation and
you must be able to explain clearly your understanding. The external code should contribute less
than 30% of the total program. No part of the code can be written by any other persons.
Declaration
There is no requirement for documentation. However, you are required to submit a
declaration with the following claim (in a text file or world file).
DECLARATION
I hold a copy of this assignment that I can produce if the original is lost or damaged.
I hereby certify that no part of this assignment/product has been copied from any other student's
work or from any other source except where due acknowledgement is made in the assignment.
No part of this assignment/product has been written/produced for me by another person except
where such collaboration has been authorised by the subject lecturer/tutor concerned.
Submission
Both the declaration and source code should be submitted via vUWS before the deadline for
documentation/checking purpose. All these files should be zipped into one file with your student
id as the zipped file name. Submission that does not follow the format is not acceptable. No hard
copy of source code and email submission is acceptable.
Demonstration
You are required to demonstrate your program during your scheduled practical session at the
following teaching week (or based on the advice of the lecturer/tutor). Your tutor will check your
code and your understanding of the code. You will receive no marks if you fail the
demonstration, especially if you miss the demo time without a special consideration. To prove
that the program is written by yourself, the tutor might require you to make some minor
modifications. In this case, you must do the requirement in order to prove that the code is only
written by yourself. You are allowed to run your program from your laptop at the demonstration
time. The feedback to your work will be delivered orally during the demonstration. No further
feedback or comments are given afterward.
The program you demonstrate should be the same as the one you submit. If you fail this
assignment at your first demonstration, you are allowed to improve your work within one week
(maximal grade is pass in this case). Do not send your work to the unit coordinator or your
lecturer. Your tutor is responsible to mark your work.