Anda di halaman 1dari 6


Title: Lecturer: COURSEWORK DETAILS: Assessment Number: Title of Assessment: Format: Method of Working: Workload Guidance: Typically, you should expect to spend between Semester: Simulation and 3D Graphics Dr Qingde Li


of Probability Machine


Report Individual 100 and 140


hours on this assessment

Length of Submission:

This assessment should be no more than: (N.B. over length submissions will be penalised)

1000 words
(excluding diagrams, appendices, bibliography, code)

PUBLICATION: Date of issue: SUBMISSION: ONE copy of this assessment should be handed in via: Time and date for submission: If multiple handins please provide details:

Week 4


If Other (state method) 9:30 Date

SVN Thursday 3rd May


The assessment should be submitted no later than the time and date shown above, unless an extension has been authorised on a Request for an Extension for an Assessment (Mit Circs) form which is available from the Departmental Office (RB-308) or passed%20by%20compe/Forms/AllItems.aspx. Your extension form should be submitted to the Departmental Office (RB-308). MARKING: Marking will be by:

Student Name


COURSEWORK COVERSHEET: BEFORE submission, you must ensure you complete the correct departmental ACW cover sheet (if required) and attach it to your work, dependant upon whether the coursework is being marked by student number, student name, group number or group name. The coversheets are obtainable from the departmental student intranet at over%20Sheets/Forms/AllItems.aspx ASSESSMENT: The assessment is marked out of:

NO coversheet required

% of the 100 100 module marks N.B If multiple hand-ins please indicate the marks and % apportioned to each stage above (i.e. Stage 1 50, Stage 2 50). It is these marks that will be presented to the exam board. and is worth

ASSESSMENT STRATEGY AND LEARNING OUTCOMES: The overall assessment strategy is designed to evaluate the students achievement of the module learning outcomes, and is subdivided as follows: LO 1 Learning Outcome Design a mathematical model of a simple dynamic system Demonstrate an undertstanding of performance issues associated with real-time simulation Implement real-time physically based models of a simple dynamic system Implement an efficient real-time graphics application in C++ using the OpenGL API Apply numerical techniques to simulation Assessment Criteria Quality of Visualization Implementation of a simple dynamic system Quality of Maths classes Quality of Report Quality of Software/Code Quality of Demonstration Contributes to Learning Outcome 4 1, 3, 5 Method of Assessment {e.g. report, demo} Program


Program, Demo

Program, Demo

Program Mark 35% 45%

1, 5 2 1, 2, 3, 4, 5 3, 4

5% 5% 5% 5%


FEEDBACK Feedback will be given via: Exemption (staff to explain why)

Verbal (via demonstration)

Feedback will be given via:

Select secondary method

Feedback will be provided no later than 4 semester weeks after the submission date. This assessment is set in the context of the learning outcomes for the module and does not by itself constitute a definitive specification of the assessment. If you are in any doubt as to the relationship between what you have been asked to do and the module content you should take this matter up with the member of staff who set the assessment as soon as possible. You are advised to read the NOTES regarding late penalties, over-length assignments, unfair means and quality assurance in your student handbook, also available on the departments student intranet at: In addition, please note that if one student gives their solution to another student who submits it as their own work, BOTH students are breaking the unfair means regulations, and will be investigated. In case of any subsequent dispute, query, or appeal regarding your coursework, you are reminded that it is your responsibility, not the Departments, to produce the assignment in question.

You are to produce three dimensional graphics, and two or three dimensional physical simulation of a probability machine. This coursework is worth 100% of a 20 credit module. A probability machine consists of a number of pegs arranged between two flat boards. Balls are introduced at a random point in a delivery shoot at the top of the machine. The balls fall, bouncing in between the pegs down to the bottom of the machine where they are collected in a number of buckets at the bottom of the machine. The amount of balls in the buckets should form a bell curve. A diagram is shown below in Figure 1.1.1. Code should be written in C++ and OpenGL and should be compiled and linked using Visual Studio 2010. gxBase should be used to provide a window, keyboard and mouse input. The following items should be submitted via E-Bridge as a single zipped folder: A brief report on of what has been achieved, how to use the software, important techniques and algorithms used and potential improvements (no more than three pages) Source code, associated VS solution and project files, resource files and an executable program Probability Machine Marking Scheme/Deliverables 1.0 Graphics Deliverables 1.1 Render 3D Probability Machine 1.2 Add multiple cameras 1.3 Add textures 1.4 Add lights 2.0 Simulation Deliverables 2.1 Kinetics and collision detection 2.2 Collision response 2.3 Multiple balls 2.4 3D Collision and response 3.0 Common Deliverables 3.1 Object Oriented Design 3.2 Optimized Maths Library 3.3 Achieve desired bell curve 4.0 Additional Deliverables 4.1 Quality of report 4.2 Quality of demonstration

Percentage 20% 5% 5% 5% 10% 10% 10% 10% 5% 5% 5% 5% 5%




An SVN repository has been created for you. This is different to your normal repository! You *must* learn how to use svn and remember to commit regularly as your coursework will be extracted from the svn repository at the time of hand in. Your svn repository is at the following location: All repositories will be deleted sometime after the hand in. Please ensure that you keep a copy of your work. DETAILED DELIVERABLES This section expands upon the individual deliverables. The deliverables have been split into four sections. This does not represent the order in which they should be attempted. For example, deliverable 3.1 Object Oriented Design should be tackled at the start of the project and should be considered throughout. A suggested schedule to work to is presented at the end of this document.

1.0 GRAPHICS DELIVERABLES This section describes the graphics deliverables required for a successful piece of work. 1.1 Render 3D Probability Machine A diagram of the probability machine is shown in figure 1.1.1

Figure 1.1.1 The probability machine The probability machine consists of 68 pegs arranged into 8 rows as shown in Figure 1.1.1 The pegs should have a diameter of 2cm and should be arranged such that the centre of pegs that are vertically or horizontally aligned should be 10 cm apart. The balls should have a diameter of 2.5cm. The boards should be 10cm apart. Buckets should be 10cm wide and 20cm deep. The delivery shoot should be 10cm wide and 20cm deep. Marbles should be able to be randomly produced anywhere in this tube. 1.2 Add multiple cameras Be able to view the scene using a variety of cameras. An excellent piece of work will feature a default camera that takes in the whole machine. A user controlled camera that can move around the scene and a zoomed camera that tracks the paths of a ball from a close up shot. 1.3 Add textures Render the scene using one or more textures. An excellent piece of work will feature more than one texture and will ensure that disposal of the textures is handled correctly.
23/02/2012 4

1.4 Add lights Add lighting, surface normals and material properties that enhances the scene. An excellent piece of work will use a variety of lights (positional, directional and spotlight) in an appropriate way. 2.0 SIMULATION DELIVERABLES This section describes the simulation deliverables required for a successful piece of work. 2.1 Kinetics and collision detection The project should be able to animate falling balls, and consider the impact of running the simulation on different pieces of hardware (i.e. be processor independent). An excellent project will implement a superior method of collision detection. 2.2 Correct collision response Balls should respond to collisions appropriately. An excellent project will take into account factors such as size and density when calculating the response to collisions. 2.3 Multiple balls An excellent project will be able to have several balls running through the machine simultaneously, performing collision detection with one another and calculating the correct response. Although initially all balls should be the same, an excellent project will be able to include balls of varying size and density. 2.4 3D collisions and response An excellent project will be able to perform all calculations in three dimensions rather than being restricted to a 2 dimensional plane. 3.0 COMMON DELIVERABLES This section describes deliverables required for a successful piece of work that can be considered common across both the graphics and simulation aspects of the project. 3.1 Object oriented design An excellent project will be laid out in an appropriate way, and will use objects beyond those introduced in tutorials. An excellent project will use appropriate objects, functions and inheritance, as well as other good programming practice such as naming conventions, appropriate use of constants, static variables, objects, functions and inheritance. 3.2 Maths library The project should include a set of maths classes. Maths classes that are used frequently should be heavily optimized. A maths library might include vectors in 2 and 3 dimensions, lines in 2 and 3 dimensions and matrices of various appropriate dimensions. 3.3 Achieve desired bell curve At the bottom of the machine there should be nine buckets. Once a ball falls beyond the bottom of a bucket it should disappear. However, a record should be kept as to how many balls have ended in each bucket. The number of balls that have fallen into each bucket should be represented by the height of a panel on the front of each bucket, forming a bar chart. An excellent project will scale the contribution of each ball to the height of each panel such that no panel ends up so high that it obscures the main part of the machine. An excellent project will also exhibit a bell curve effect across the panels on each bucket. 4.0 ADDITIONAL DELIVERABLES This section describes additional deliverables required as part of the submission of the work.


4.1 Quality of report The project should be accompanied by a brief report on of what has been achieved, how to use the software, important techniques and algorithms used and potential improvements. The report should include appropriate screen shots demonstrating what has been achieved and should be no more than three pages long AND no more than 1000 words. 4.2 Quality of demonstration Students are required to demonstrate their work in week 12. Failure to attend your demonstrating will result in a 40% cap of your work in line with departmental policy. Students should demonstrate their work on the lab machines, but may also use their own equipment, however, students are reminded that graphics can often appear significantly different on different hardware, so there is a risk associated with demonstrating work on machines that it was not developed on. Students are also reminded that there are no extensions given as a result of loss of work from your own hardware. An excellent demonstration will be able to show off all the implemented features of the simulation effectively, and should incorporate additional features where appropriate to do this. An excellent student will be able to set up scenarios to show features that might not be evident from the normal running of the simulation; and have the ability to slow down or pause the simulation as required. SUGGESTED TIMETABLE Students are reminded that this piece of coursework is worth 100% of a 20 credit module. Students should place their time appropriately. A timetable for work is suggested below. A progress check will be carried out in week 7. By this time the majority of the graphics deliverables should be in place. The weekly tutorials are intended to help you stick to this schedule. It is intended that the weekly tutorials should give you the skill necessary to produce an excellent piece of work, and that both the tutorials and the course work be completed in parallel. If you have any questions or feel like youre struggling talk to a demonstrator or email Task/Week 1.1 Render 3D Probability Machine 1.2 Add multiple cameras 1.3 Add textures 1.4 Add lights 2.1 Kinetics and collision detection 2.2 Collision response 2.3 Multiple balls 2.4 3D Collision and response 3.1 Object Oriented Design 3.2 Optimized Maths Library 3.3 Achieve desired bell curve 4.1 Quality of report 4.2 Quality of demonstration 16 17 18 19 20 21 22 23 24