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.