MONASH UNIVERSITY
SCHOOL OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING
HONOURS YEAR

FIT4012 : Procedural modelling, animation
& artificial life in computer graphics

Assignment Notes


Title :

The Motorpace

Date Due: Refer to main page
Weight: 100% of your final mark for this unit
Submission: CD-ROM

 

Specifications:

Track racing is a competition that pits cyclists against one another on a steeply banked velodrome (fig. 1). In the "Motorpace" race, riders start together and must complete a fixed number of laps of the track riding in turn behind a motorbike (or derny). The derny accelerates slightly after each lap it completes. After each lap, the rider nearest the derny "pulls up" towards the outside of the track from the front of the line of cyclists and rejoins the line at the back. No cyclist may pass the derny while it is on the track. Two and a half laps before the finish of the race, the derny leaves the track (on the inside) and the cyclists are left alone to rush across the finish line ahead of their rivals. Use agent-based/behavioural modelling methods to create a field of motorpaced track racing cyclists.

Fig. 1: An image of a motorpaced track race pinched from somewhere on the WWW.

The cyclists: Your cyclists will need to be modelled as spheres with a mass and velocity. Cyclists of different sizes (they are mostly made of water) will have different power generation capabilities and different energy consumption requirements. They will need reasonable capabilities to accelerate themselves and their bicycles by consuming energy from their limited on-board supply. Movement at constant speed also requires energy to overcome air-resistance. This drag force can be calculated easily by assuming that the riders are spheres moving through air. It must be countered by force applied by the cyclist or they will gradually come to a halt.

The cyclists' behaviour: Riders must stay on the track and avoid colliding with one another or with the derny. Colliding cyclists have their velocity reset to zero every time they collide. Cyclists hitting the track barrier have their velocity reset to zero also and their position remains fixed at the edge of the track until they start to move on the track properly. Cyclists must aim to finish the race in first place. If a rider is sitting behind another rider of larger or identical radius or the derny, and their separation is less than twice the radius of the frontmost rider, the following rider saves 30% of the energy they would normally consume to maintain the speed at which they are riding because the drag they experience is reduced. If the frontmost cyclist is smaller than the rearmost rider, the rearmost rider saves only 15% of the energy required to move alone. The technique of sitting "on the wheel" of another cyclist is called drafting (fig. 2).

The derny: Derny riders sit upright and make themselves a big wind-break (make the derny rider bigger than any of the cyclists). Otherwise, the derny can be treated as just a cyclist with limitless energy who rides around the track until two and a half laps to go at an ever-increasing speed.

Fig. 2: An image of drafting cyclists in a race called a "Team Sprint", taken by Phil O'Connor, 2000 (linked from here).

What you need to do...

Stage 0 [30% of final mark]
Devise a simple system for riders to follow behavioural rules using a system like Reynold's boids model. These strategies will need to be parameterised in some way so that you can manually enter them, or automatically generate them and apply them to different riders. To start with, just get the riders and derny to ride around the track without colliding. Once this is working the model's complexity can be increased as follows.

Stage 1 [30% of final mark]
Each rider can always detect what the riders immediately to the side are doing (i.e. their size, position, velocity and acceleration can be known and a response can be made). They can also always see what riders in front are doing up to a quarter-turn of the track ahead. As long as the derny is still on the track (it needs to be recognisable to cyclists), all riders will try to ride either behind the derny, or behind another cyclist that is behind the derny. After one lap immediately behind the derny a rider must pull out to the side of the line and drop in behind the last rider following the derny. If there is a gap in the line (caused by a rider running out of energy for example), the rider dropping back may fill the gap. Cyclists may never overtake the derny (this is against the rules and results in disqualification).

Stage 2 [30% of final mark]
Each rider might look behind themselves and at all other locations on the track at some regular interval. Perhaps there could be a loss of steering accuracy and therefore an added risk of crashing into a nearby rider for riders who look around and concentrate too little! Riders always know how many laps (and fractions of a lap) remain until the finish line is reached. Their strategies and behaviours may be triggered therefore by either: (i) the behaviour of other riders they see (ii) the distance to the race finish (iii) their energy stores and other internal states (iv) the behaviour of the derny.

Some example behaviours after the derny leaves the track
Cyclists may elect to spend energy to accelerate in order to catch the back of a rider that is ahead of them in order to save energy in the future by "drafting" behind them, then they may accelerate rapidly from behind the rider in front as the finish line approaches. Riders may measure their effort and ride a constant speed around the track hoping nobody else can keep up with them. Riders may start slowly and ride faster and faster until they run out of energy, hoping that nobody is able to stay with them. Riders may start very fast when the derny pulls off in order to leave other riders behind and then ride at a constant, measured pace to the finish hoping that nobody catches them. You can come up with your own race tactics and pit them against others.

The velodrome: Model the track as a ring with different inner and outer radii between which the riders may move in an anti-clockwise direction. Movement is possible to the inside and outside of the track (to go pass other riders), as well as around it. Treat the entire track as flat (i.e. not banked).

All your code should be written in C or C++ and should run under a UNIX (or derivative) operating system. The models should be visualised in OpenGL. Riders can be drawn as circles on a track using 2D graphics if you wish (fig. 3)

Fig. 3: A sample visualisation of the track cyclists and velodrome.

You will need to research behavioural modelling techniques. This will involve reading papers and books, not just the WWW and the lecture notes. Prepare a bibliography document detailing the references you have consulted in the course of your research. Write a paragraph describing the contents of each reference you have consulted. The paragraph should be specific about what the reference contained that was of value (or not) for your assignment.

Marking breakdown:

A distributed behavioural model and a physical simulation of: the cyclists circling the track, handling collisions and attempts to ride off the track

[30]
Cyclists following the derny in correct formation and drafting [30]
Cyclists engage in race tactics after the derny pulls off [30]
Bibliography: only published books, conference and journal papers count for marks [10]

 

Submission Details:

The assignment is due at the time specified on the main page.

Submit all of the files specified below on a CD-ROM clearly labelled with your name and ID number. Submissions will be accepted at the General Office in building 63 or presented in person to the lecturer prior to the deadline.

You will need to include the following in your submission:

Documentation is important. Marks are allocated within each section for the research you have done. Documentation submitted should include:

Each file of your source code must contain the follwing at the top:

 /* 
  * This software is the original work of <Your Full Name>. ID: <Your ID> 
  * This software is submitted in partial fulfillment of the 
  * requirements for the degree of <Your Degree>, 
  * Monash University
  */ 

You are encouraged to consult reference material as widely as possible, but remember the code you write MUST be your own work. Make sure you think about, and understand, the processes involved rather than blindly copying the work of others.

Please be realistic about what you can achieve given the time constraints. Students invariably spend far too much time on this assignment. As much fun as it is, any time above 50 hours would be better spent on other activities. (e.g. fishing in the Monash pond)

Late assignments will incur mark penalties according to the Fibonacci sequence multiplied by a lecturer-determined scaling factor (e.g. 0.5, 1 or 100). An assignment that is one day late will receive a one mark penalty multiplied by the scaling factor. Assignments two days late will receive a 2 mark penalty, three days late, 3 marks, each multiplied by the factor. The sequence is [1],1,2,3,5,8,13,21... (times the factor). This applies for all days including public holidays and weekends so please submit your assignments punctually!


[ FIT4012 Home Page ]