The School of Computer Science and IT is offering a number of summer studentships for the summer vacation. Each studentship is worth $250 per week, for either 8 or 10 weeks. All students within the school - undergraduate or postgraduate - are eligible; although preference will be given to students continuing to the honours degree or to a research project/thesis. Students must be available to start their summer studentship by 1st December at the latest, or it can be started any time from the end of the exam period.
Payment is conditional on completion of the full 8 weeks full-time work on the studentship. There is no partial payment of studentships and students who discontinue part way through will be required to repay any money paid. Studentships cannot be done simultaneously with summer school studies or a regular job. A studentship is a great opportunity to gain first-hand experience of research in computing, working closely with a staff member on an interesting and challenging project. Studentships often lead to further opportunities: past summer students have gone on to PhDs, to projects, or part-time work during the year, and to interesting challenging positions at the conclusion of their studies. A summer studentship looks excellent on your CV and helps differentiate you from the majority of job-seekers.
Your written application should be submitted to Dr Xiaodong Li by 26th October (Monday). The application form is available here.
IMPORTANT: funded projects are tied to the student and the project. If you are being funded, then you cannot change projects without approval from Professor Lin Padgham.
Supervisor: Jenny Zhang
A commonly seen problem is to assign class labels to objects. Examples include a food scientist to label a mushroom as poisonous or edible, or a doctor diagnose a patient as having a disease or not. This problem is called classification. A data mining approach to classification is to learn informative knowledge patterns from the accumulated large amounts of data and then use these patterns to classify unseen new objects. In this project you are to implement a data mining classification algorithm and evaluate its effectiveness on benchmark datasets from the UCI machine learning repository.
Requirements: Proficiency in C, C++ or Java programming.
Supervisor: Alexandra Louise Uitdenbogerd
"I'm down on my knees, begging you please", The line has to rhyme "Until the end of time".
This summer project involves applying text mining techniques to find frequently occurring phrases in a database of lyrics. Students should be comfortable with programming involving strings and files.
Supervisor: Fabio Zambetta
The aim of the project is to create a virtual environment representing a zoo, using an isometric rendering engine built of top of Flash and Action Script.
Another aspect of the project is binding the client side rendering to a server-side back end storing knowledge on the virtual environment.
Two key figures are required for this project:
- A graphics designer
- A programmer
Supervisors: Paul McIntosh, Margaret Hamilton and Ron van Schyndel
Languages: C++, OpenSceneGraph/OpenGL and/or UML knowledge an advantage
X3D-UML (www.x3d-uml.org) allows the transformation of UML (Unified Modelling Language) software models into a 3D space. This enables many new areas to be explored and one of these areas is leveraging augmented reality (AR) for debugging. Through AR it is possible to overlay software state machines on to existing hardware, as demonstrated in the youtube http://www.youtube.com/watch?v=gDb1wN1YAfM
The project is to take this concept to the next level and to drive a 3D UML state machine visualisation with information from the running software on a Lego robot (or another embedded system) and allow the user to interact with the visualisation. Working with the lead supervisor the result of this project will be the ability to view a robot in action through a web camera and also observe and interact with the internal state of the robot's software in real-time, in the same view.
The project outcomes are:
Supervisors: James Harland, Xiaodong Li
Sudoku is a popular form of puzzle, often found in newspapers, in which the aim is to place 9 occurrences of each of the digits 1-9 in boxes so that each digit is unique in its row, column and enclosing box. The aim of this project is to develop a software tool to assist with Sudoku puzzles. This will involve significantly more than the (comparatively simple) task of finding a solution for a Sudoku puzzle as found in a newspaper, such as:
Supervisors: Vic Ciesielski, Daryl D'Souza
This project involves porting the NPR software developed by the evolved art group software from the unix environment to the Iphone. Examples of renderings produced by the NPR software can be found at http://evol-art.cs.rmit.edu.au .
Supervisors: Vic Ciesielski, Daryl D'Souza
This project involves the development of a set of draw commands that can be incorporated into an evolved art system to give interesting non photorealistic renderings of a target image, for example water colour, oil based, charcoal sketch.
Some examples are at: https://staff.cs.rmit.edu.au/~asong/SummerProject/www.cs.rmit.edu.au/~vc/evolved-art/work-in-progress
Supervisor: Ian Peake
Prerequisites: experience with low-level hardware interfacing or willingness to rapidly acquire this. (Desirable: knowledge of aspects of real-time system modeling such as finite automata / message sequence charts.)
This project is to develop a system where a two mobile Lego Mindstorm robots sort physical objects, using existing open source components, such as the Lejos-NXJ (Java VM port) development stack, wherever possible. (see http://en.wikipedia.org/wiki/Lego_Mindstorms_NXT and lejos.sourceforge.net/.)
This project therefore has the potential to illustrate interesting technical techniques and problems such as distributed control, parallel computing and component-based architecture and development. Depending on students' abilities and interests, this project is a possible gateway into subsequent honours or research projects with the School's Distributed Software Engineering and Architecture group (http://www.cs.rmit.edu.au/dsea/).
There is the possibility of multiple students collaborating on this project.
Supervisors: Fabio Zambetta, Geoff Leach
More details will be provided by the supervisors.
Supervisor: Andy Song
This project is mainly to explore the capability of iPhone platform and to build up the expertise in iPhone development within the school. The proposed project will focus on medical and health data handling. In particular, data visulization, data exchange, data mining on iPhone and graphical interface development. The development will be based on existing projects.
Requirements: Proficiency in C, C++ or Java programming. (Skills in Objective C, Cocoa development would be highly desirable.)
Supervisor: Andy Song
The project is the extension of previous projects. The aim is to use Genetic Programming to evolve programs which could detect interesting property such as texture regions, moving objects and still objects from video stream. This project involves RMIT GP package which is written in C++ and a vision package which is written in C#. Scripting language programming skill and basic understanding of image analysis would be highly desirable.
Requirements: Proficiency in C, C++
Supervisor: Ibrahim Khalil
Web streaming is the exciting new technology that enables users to view live or pre-recorded video, audio and rich media across the Internet. There is a huge demand for YouTube video clips on demand type services. We envision that there will be demand short video clips as well as DVD downloads from large number of customers. Satisfying demand for such services with good QoS from a centralized web cluster system is not be scalable. We propose a distributed cooperative Video on Demand system where servers are located in many different geographic locations close large client concentrations. In such a cooperative system if clients find their nearby servers under heavy load they are automatically directed to servers that are least loaded by using efficient anycasting method. Simple numerical analysis shows that this not only reduces load on server, but also improves average response time (i.e av dvd or video clip download time).
Requirements: C/C++, Network programming, Load Balancing, Linux
Suitability as Hons/MBC Work: Yes
Supervisor: Ron van Schyndel
This project is part of a set of related projects which will collectively implement an intelligent classification layer on a movie, such that a viewer can select semantic components of the movie and interact with them.
This part of the project requires you to take apart one of the common open source media players (mplayer, xine, ambulant, JMF, Helix, etc ¨C choose the one that is easiest to modify) and implement/add a layer that describes regions using polygons in an XML format, and store this in a text layer within the Ogg or Quicktime container video format along with timeline info.
The process will be interactive ¨C the movie builder draws regions on the screen and labels them. These regions are static between two time periods. With a global switch a movie viewer can makethem visible as shown below, as select them.
In the first instance, it is intended to use ImageJ as a platform to implement these imaging routines (which are off the shelf ¨C you need simply port them). Then eventually to port them into a video plugin which can apply these to each video frame. The end result is to have different labelled regions appear with a video over time. The code for this to be in a container layer ¨C probably as XML code.
More information: here
Requirements: Good systems-level knowledge of C / C++, or Java in a Unix environment.
Supervisor: Ron van Schyndel
This project is part of a set of related projects which will collectively implement an intelligent classification layer on a movie, such that a viewer can select semantic components of the movie and interact with them.
This project requires you to take apart one of the common open source media players (mplayer, xine, ambulant, JMF, Helix, etc ¨C choose the one that is easiest to modify) and implement/add a layer that will allow the insertion and detection of a simple video watermark. It can be as simple as extracting a video frame and watermarking each frame, or a multiframe watermark). You would NOT have to develop the watermark algorithm itself, but merely use one of the many existing algorithms. You would develop a pluggable implementation so that other algorithms can be added later.
The video formats being considered are mpeg / ogg/theora (as fully documented open source formats) and flv (potential for youtube player insert). We edit with some well-known open source video editors (eg Jahshaka/Jahplayer, VirtualDub, Zwei-Stein, Cinelerra).
More information: here
Requirements: Good systems-level knowledge of C / C++, or Java in a Unix environment.
Supervisor: Lawrence Cavedon
RMIT is working with a startup company to develop "interactive toys": toys that can talk with children, tell stories, display emotion. We are building both physical toys as well as virtual worlds where animated versions of the toys go and have adventures and interact with other toys (e.g. at day at the zoo or at school). There are a number of project possibilities, including building virtual worlds, building the "intelligence" of a virtual character, interfacing the toy with other capabilities (e.g. bluetooth), extending the models of speech and language, etc.
Requirements: Strong Java programming skill or strong Flash design skills.
Supervisors: Dr. Lawrence Cavedon and Dr. Carole Adam
The Intelligent Systems research group has a project to build an Interactive
Emotional Toy: a toy that can use speech recognition and speech output to talk
to a child, and display sympathy, happiness and other emotions to make the
experience fun for the child. This involves a real physical toy as well as an
animated character in a 3D virtual world.
This student project is to build XML interfaces to the programming API, to match
standard XML interfaces building being built for animated characters (e.g.
GRETA:
http://www.tsi.enst.fr/~pelachau/Greta/ ) so that our software can drive any
ECA that implements the standard.
The student will work with the Toys project team, who will provide
definitions of the XML standards and the Toy API, and help with the programming
techniques required.
Requirements: strong Java programming; advantage but not necessary (can
learn): Java XML classes
Supervisors: George Fernandez, Ibrahim Khalil
The objective of this project is to build a system that would compare a patient's submitted ECG data with the stored ECGs (different types of abnormal ECGs) collected from publicly available MIT-BIH database. The result of this comparison would indicate the similarity and the type of disease. The stored database will contain the most common types of Arrhythmias such as Atrial fibrillation, Atrial premature beat, Atrial tachycardia, Ventricular tachycardia, Ventricular premature beats etc. Such a system would allow a patient to submit his/her ECG data to ECG vending machine and check the status of cardiovascular condition.
Background materials on ECG will be provided to the student. The student will have to develop pattern matching algorithms to find the similarity between submitted and stored ECGs.
Requirements: Any programming language (C/C++, Java). Pattern
matching.
Suitability as Hons/MBC Work: Yes
Supervisors: Sebastian Sardina, Sarah Hickmott
Supervisors: Sebastian Sardina and Sarah Hickmott The Agent Contest involves 2 teams of intelligent agents collecting gold in a dynamic grid-like environment. Currently, we have an agent system programmed in the JACK agent language (an extension of Java with agent-oriented concepts; http://www.agent-software.com.au/) that is able to compete in this game. However, the system can be improved in many ways to get smarter agents and teams. At the moment, the agents reason only at the cell level and are not aware of higher-level concepts, such as walls, mazes, or corridors.
This summer project will involve:
Requirements:
This project would be suitable for extending to an Honours project.
Supervisors: Sebastian Sardina, Sarah Hickmott
The Agent Contest involves 2 teams of intelligent agents collecting gold in a dynamic grid-like environment. The games evolves in cycles of around 4 seconds, in which the game server provides current sensing information to each agent, and each agent replies back with its current action (e.g., moving to a cell, picking up gold, etc).
Currently, we have an agent system programmed in the JACK agent language (an extension of Java with agent-oriented concepts; http://www.agent-software.com.au/) that is able to compete in this game. However, the current system is highly-reactive and agents wait for the beginning of each cycle to reason about which action is to be performed.
This summer project will involve modifying the current architecture in a way that will allow agents to continuously "think" about what to do next beyond the scope of each game cycle. The new agents will reason forward in the future and record its preferred actions, which will be "consumed" at each cycle accordingly. However, because the real world may not come up as expected, the agent needs be prepared to drop its already produced actions and start from scratch again when necessary.
Requirements:
This project would be suitable for extending to an Honours project.
Supervisors: Sebastian Sardina, Sarah Hickmott
JACK is a commercial platform for developing autonomous systems. The JACK Agent Language is a programming language that extends Java with agent-oriented concepts (see http://www.agent-software.com.au/).
One current project in the Intelligent Systems Group involves extending JACK with planning capabilities using a Java based Hierarchical Task Network Planning System called JSHOP2 (see https://staff.cs.rmit.edu.au/~asong/SummerProject/%20http://www.cs.umd.edu/projects/shop/description.html).
Depending on the student's interests, the summer project will involve either:
Requirements:
This project would be suitable for extending to an Honours project.
Supervisors: Margaret Hamilton
We require software developed to enable us to manage a small server remotely. We have built a solar-powered mobile Bluetooth server prototype, Solar Blue, which is portable and can run independently of mains power. The aim of this project is for the device to promote engagement with issues surrounding the built environment and city lifestyles. We are currently investigating the ways people interact with media in mobile networked wireless environments and the way this changes notions of public places and spaces. Solar Blue will be tested around various locations at the City campus of RMIT University over the next few months. The content in the initial implementation will include ringtones, games, animations and art made by staff and students at RMIT University.
The next phase is to be able to manage the server remotely using the web via a fixed or wireless network. We require java code to enable the server to connect to whatever network is available within a ten metre radius and send statistical data to enable continual remote management. The existing code is java, running with bluecove Bluetooth in a Windows environment, and the existing documentation for the Solar Blue prototype will be discussed and developed further during the project. The outcomes of this project will be a better understanding of Bluetooth connectivity and interaction, mobility and distributed networking issues. This project represents a great opportunity to engage with emerging computing technologies and potential applications in the real world.
Requirements: Java, Networking, Unix.
Supervisors: JianKun Hu
The project will investigate various ways to improve the performance of our previous work on k-Nearest Clustering Keystroke Dynamics Authentication scheme. The student will need to collect data and perform experiment. C# or Java programing skill is needed. Knowledge of network security is desirable. The student also has the capability of working independently.
Supervisors: Xiaodong Li and Fabio Zambetta
This GECCO-2009 competition will involve two tasks: The first task simulates the typical race in which a driver first races alone on a track to determine its position on starting grid; then the actual race takes place and all the drivers compete on the same track. The second task simulates the days before a car race when the teams set up their car and the team driver adapts its driving style to the new car setup.
For details about the competition, refer to the competition main webpage: http://cig.dei.polimi.it/?page_id=79
where the software, the rules and regulations, and the manual are available for download. Your overall objective for this project is to apply some AI techniques (e.g., artificial neural networks, evolutionary algorithms, or particle swarm optimization methods) in order to produce a reasonable entry (according to the competition requirements), for a future GECCO competition (as it runs every year). More specifically, you need to answer the following research questions:
The following information about the two tasks is taken from the GECCO’09 competition website:
Contest 1: Learning to drive
The goal of this contest is the design of a controller for a racing car that will compete on a set of unknown tracks first alone (against the clock) and then against other drivers. The controllers perceive the racing environment through a number of sensors that describe the relevant features of the car surroundings (e.g., the track limits, the position of near-by obstacles), of the car state (the fuel level, the engine RPMs, the current gear, etc.), and the current game state (lap time, number of lap, etc.). The controller can perform the typical driving actions (increasing the gear, accelerate, break, steering the wheel left or right, etc.)
Contest 2: Optimizing car setup
The second contest simulates the days before a race when mechanics and pilots work on the car setup to find the one which will result in the best performance. The goal is to build an evolutionary algorithm that can replace the team of mechanics and pilots and can find the best car setup (e.g., gear ratio, wing area and angle, spring setup) on a given track.
Requirements: Good Java programming skill, and some knowledge of AI and optimization.
Supervisors: John Thangarajah
The following are projects to do with the Prometheus Design Tool (PDT). PDT is a development tool built by the RMIT agents group for developing intelligent agent systems. This tool has won an international award and is been used extensively for teaching agent systems and also in some industry applications. http://www.cs.rmit.edu.au/agents/pdt/.
a) JACK Editor in Eclipse
JACK is an agent-oriented programming language extended from JAVA. Similar to all the other programming languages, a well-functioned JACK editor is almost essential. The default eclipse Java editor provides Java syntax highlighting, syntax checking and indentation for example. This project is about introducing at the very least syntax highlighting for JACK programs and if possible syntax checking. The editor is to be an eclipse plug-in.
b) AUML Text Generator
AUML (Agent-UML) is a way of specifying interaction protocols between Agents in a Multi Agent System. In PDT, a modified version of AUML is used to described protocols but the interface is text based and prone to typos. Although the syntax of AUML text notation is relatively intuitive, a GUI generator could be more convenient and could potentially avoid typos by providing users with lists of entities to choose from for example. Users should be able to interactively create and modify both AUML text and sequence diagram with this GUI generator.
c) Drag and drop from agent overview to capability overview and second part is to do reverse
In PDT (Prometheus Design Tool), a capability within an agent allows grouping of coherent events/plans/data as a single unit. Often though, capabilities are created after the agent is designed and when it is apparent that certain units can be grouped. However, currently in PDT when a capability is created the entities cannot be copied from the agent diagram and placed in the capability diagram, instead the entities need to be added to the capability and removed from the agent overview. It is much more convenient to implement a drag and drop feature to group entities into a capability.
d) GUI Testing
Manual testing is time consuming and inefficient for software with GUI. Here we need an automatic testing framework for our PDT software. The testing framework should be flexible and extensible enough so that it could be used during the whole PDT development life cycle. There is some existing work that could be built upon.
e) Scrap book
This is another PDT extension where users can create and preview design on a scratch book and use this design snippet later in the real project. Similar to the other PDT graphical editors, the diagrams on scrap book can be saved into a file and reopened in future. Moreover, it is helpful to build an interface to transfer contents from scrap book into real design.
f) Independent agent design
On some occasions, it could more flexible to design agents independently and import these agents into system. This gives rise to questions of consistency between the agents created independent of the system and the system when it is imported. A pre-checking process might be taken before performing import operation. If there is no conflict detected, the how to seamlessly integrate these agents into the main system is the second problem.
Supervisors: Lin Padgham, Sarah Hickmott, Fabio Zambetta, Dave Scerri
We have a large project where we are developing a framework that allows specialised modules to be integrated to form a large complex simulation. The specific target application is Adaptation to Climate Change, and the tool we are developing is envisaged as having multiple purposes - exploration for policy development, educational games, etc. The project is in collaboration with people from sociology as well as with international collaborators in Europe.
We require several models to be created using the popular ABM software REPAST. This will require students to learn the REPAST language, and have a good understanding of Java in order to connect the model to our framework. Some knowledge of Groovy will also be of benefit. Modules we would like include, but are not limited to:
We would also like to develop some graphical aspects of the project including:
Supervisor: Alexandra Louise Uitdenbogerd
For this project the student will use one of the open source speech recognition packages to build a speech recognition tool for learners of a foreign language. The student will run experiments to test the accuracy on limited vocabulary/sentence tasks for a variety of speakers.
The aim of this project is to investigate techniques for automatic segmentation of video, using content based image retrieval algorithms. Previous research has developed techniques that can easily detect cuts, fades et cetera in television video footage, but the challenge of this project is to discover techniques that will segment videos of live performances taken from a single camera position.
Requirements: Good programming skills, XML and C++ experience would be an advantage, interest in live performance (especially circus)
Supervisors: Amir Aryani and Ian Peake
This project is to implement an extension to the Microsoft NodeXL; an open source graph drawing add-in for Excel 2007 developed by Microsoft research community utilizing Windows Presentation Foundation (WPF) and C#. NodeXL provides specialist functionality for network analysis, graph clustering and number of well-known graph drawing layouts. The extension is to support a cluster layout algorithm where graph edges have variant values and such values distinguish clusters with strong interconnections. Such a clustering has number of applications e.g. to illustrate conceptual similarity between software components. A dual aim of the project is to get involved with the Microsoft research community developing NodeXL project, and getting the extension added to the code base.
Prerequisites: knowledge of programming in C# and basic understanding of graph theory / algorithms or willingness to acquire such knowledge rapidly
Supervisors: Flora Salim and Ian Peake
Terrestrial Laser Scanners have been used for land and building surveying in place of traditional survey techniques. Using laser to measure three-dimensional coordinates, point cloud data are generated and can be visualised for 2D or 3D drawings of buildings or landmarks. This project is to investigate automating feature recognition from large scale point clouds data in order to build parametric models that can be used by architects or designers. Computational geometry and data mining techniques are to be investigated to automate such a process.
Supervisors: Nick May and Ian Peake
Prerequisites: Ability to write programs in Java. (Desirable: Experience with the Eclipse IDE. Knowledge of aspects of XML. Understanding of the concepts of software architecture.)
Modelling and predicting behavioural properties of service compositions such as responsivenesss and availability is current topic of research. Frameworks such as SCA can be used to define service compositions, but do not include specify service behaviour and protocols. Moreover, the Distributed Software Engineering and Architecture research group is developing an architecture description language, RADL. As part of this research the group is interested in providing tool support the modelling and visualisation of RADL.
This project is to enhance the SCA Tools Eclipse Plug-in to allow for the visualisation and definition of RADL model elements. The SCA Tools Plugin currently includes extension points that can be used to add functionality to the XML Editor and Composite Designer, which will be utilized for the RADL XML namespace. The student will gain valuable experience in developing plug-ins for the Eclipse IDE.
Further information; SCA: http://www.osoa.org/display/Main/Service+Component+Architecture+Home SCA Tools Project: http://www.eclipse.org/stp/sca/index.php
Supervisors: Fengling Han, Jiankun Hu
Medical applications often deal with patients′ data that are confidential. Security mechanisms deployed in existing DMI systems is almost exclusively based on the conventional cryptography which is design to protect text information. Medical images usually have a large amount of data. To protect such data efficiently is a great challenge. This summer project focuses on:
Requirement: C++ and/or Java programming.
Supervisors: Jiankun Hu, Fengling Han
Fingerprint biometrics has long been used in identity identification. Minutiae representation of fingerprints is utilized by forensic experts, and has been adopted by most of the commercially available automatic fingerprint matching systems. Fingerprint minutiae are unique but unreliable, and prints of the same finger are rarely identical, which are called intra-user variation.
This project proposes to describe the information of minutiae with an equivalent vector to account for intra-user variations. The relative relation of minutiae is used as a feature, which is rotation invariant and translation invariant. The orientation information can help to overcome the elastic distortion. The outcome of this project has potential to be extended to PhD research.
Requirement: C++ and Java programming.
Supervisor: Xiaodong Li
Stochastic algorithms such as Evolutionary Algorithms (EAs) and more recently Particle Swarm Optimization (PSO) algorithms have shown to be effective and robust optimization methods (Kennedy & Eberhart 2001). The original and many existing forms of EAs and PSOs are usually designed for locating a single global optimum. These algorithms typically converge to one final optimum because of the global selection scheme used. However, many real world problems are multimodal by nature, that is, multiple satisfactory solutions exist. For an optimization problem with multiple optima, it might be desirable to locate all global optima. Numerous techniques have been developed in the past for locating multiple optima. These techniques are commonly referred to as niching methods. A niching method can be incorporated into a standard EA to promote and maintain the formation of multiple stable subpopulations within a single population, with an aim to locate multiple optimal solutions.
In this project you are expected to investigate how to improve existing schemes (or develop novel schemes). You will use some standard benchmark multimodal test functions (from low to high dimensions), and carry out systematic experimentation and statistical analysis of the results to determine the effectiveness of these techniques.
Supervisors: Abdun Mahmood and Jiankun Hu
Security of Supervisory Control and Data Acquisition (SCADA) is a very interesting and industry/company oriented topic in Australia, due to the many high profile industrial security breaches happening worldwide. We are building a real SCADA testbed that can monitor and control real devices. For this project we need to create/adapt open source modules that can accomplish the following:
Working in this project will give practical and hands on experience on some of the challenges in industrial networks for designing and monitoring industrial processes.
Supervisors: Abdun Mahmood and Ibrahim Khalil
There has been a recent increase in the number of attacks happening on Internet. Some of these attacks, known as Distributed Denial of Service attacks (DDoS) involve using hundreds and thousands of Personal Computers and Mobile Devices as zombies to co-ordinate attack on a vulnerable services or target machines on the Internet. The real challenge for ISPs as well as security administrators is how to detect these attacks early by gathering network traffic data from multiple ingress points of the network. This project involves building an application for using data mining and clustering techniques on real world data and present summarized reports on such attack trends. Such a tool would be quite helpful as an early warning system against DoS and other attacks.
Supervisors: Geoff Leach, Stefan Greuter
Requirements: graphics, procedural generation, C/C++
Crates and Barrels are objects often found in games. In this project procedural generation is used to generate crates with the goal of achieving the kinds of variation one might find in a warehouse. It will involve varying geometry, materials and textures and possibly normal and/or displacement mapping and likely involve shaders. Further, the aim is to incorporate the techniques into a modelling package as a plugin or extension.
Supervisors: Geoff Leach
Requirements: graphics, procedural generation, C/C++
Geometry shaders have been recently promoted to the OpenGL core, and now sit alongside vertex and fragment shaders in the programmable graphics pipeline. The project is to investigate the use of geometry shaders to perform dynamic tesselation of surfaces, evaluating where performance improvements can be achieved.
Supervisor: Ibrahim Khalil
Skill required: C/C++, Network programming, Software Caching, Client/Server systems Suitability as Hons/MBC Work: Yes
Caching improves the efficiency of data delivery over the Internet. A cache close to the client can serve a stored page quickly even if the origin server is heavily loaded or the network path to it is congested. Also, widespread use of caches helps all parties involved: if requests are intercepted by nearby caches, then fewer go to the source server, reducing load on the server and network traffic to the benefit of all users. In this project we want to implement a sofware cache manager that will have the following features:
* able to keep log of data transmitted * able to define the popularity of documents * able to store popular files of optimum size that would maximize bandwidth savings. * able to dynamically purge old popular files and add new ones to the cache. (as popularity rating changes) * able to do interest based routing
Supervisor: Ibrahim Khalil
Skill required: C/C++, Network programming, HTTP protocol Suitability as Hons/MBC Work: Yes
Content providers often need to deliver high quality contents to selected registered customers while offering contents of reasonable quality to the general mass. Providers may deliver contents of equal quality to all customers during low content demand, but during heavy network load contents of high quality must be delivered to selected customers while degrading the service of non-registered, non-paying ones. The objective of this project is to integrate such features in a web server program (a simple web server code will be provided to the student).