COMP1347 Application Programming: Concepts to Construction

Cloud Simulator

Design, Build, Test a Cloud Simulator.

Description: This is a design-build-test project to produce a piece of software using a language of your choice that simulates the visual appearance of clouds in real-time.

Key challenges: study and understand state-of-the-art techniques for simulating the appearance of clouds in real-time, then implement one of them and test that it works (the test needs to verify that the code works and that the intended model used is actually implemented).  This would be a challenging project.

Although the artefact (ie your software prototype) will be a key deliverable, we will also need to see:

  • a requirements specification and plan, developed through background research/study and discussions with your supervisor
  • a detailed and reasoned software design, showing how the model is interpreted into code
  • a development plan/log based on the above design (it is normal practice for a design to evolve throughout the development process, especially if using an agile approach)
  • a test strategy and log, showing the planned approach to verification and the results of your tests.
Supervisor

'Ghost' Detector: Anomalous Event Trigger for MS Kinect Point-cloud Recorder

An interesting feature of the Microsoft Kinect depth sensor is the occasional/spurious appearance of 'orbs' in the infra-red camera output.  A number of reports have been made about this, and we have seen them a few times ourselves when working with the device.  Setting aside the heated discussion as to what these 'orbs' are (as they cannot be normally seen by the naked eye), it would be interesting to see how the depth sensor component of the Kinect interprets these anomalies (ie in terms of the resulting point-cloud data).

To this end, we would like you to Design-Build-Test an application that detects orbs in the infra-red camera image, and upon detection, it triggers a recorder, so that the Kinect's point-cloud data output and infra-red video output is captured to disk.

Although the artefact (ie your software) will be a key deliverable, we will also need to see:

  • a requirements specification and plan, developed through background research/study and discussions with your supervisor
  • a detailed and reasoned software design
  • a development plan/log based on the above design
  • a test strategy and log, showing the planned approach to verification and the results of your tests.  As a part of this, you will need to include a method for 'cheating' the Kinect sensor using an infra-red element of a scene that is not in the visible spectrum.

Please make contact with Marc Price if you are interested in this project.

Supervisor

Entity-based Game Engine Architecture in C++

This is a Design-Build-Test project to produce a game engine using modern C++.

This would be a DBT project that is primarily focused on Software Engineering and Game Development.  Although some kind of demo will be required to showcase the software, producing a playable game prototype would be beyond the scope of the project.

Key challenge: how to design, implement, and verify a performant game engine in C++.

Considerable background research on modern C++ (eg C++ 14) would be necessary to succeed with this project.

Although the artefact (ie your software) will be a key deliverable, we will also need to see:

  • a requirements specification and plan, developed through background research/study and discussions with your supervisor
  • a detailed and reasoned software design, highlighting any key design patterns that have been employed, and descriptions of how these are implemented using modern C++
  • a development plan/log based on the above design (it is normal practice for a design to evolve throughout the development process, especially if using an agile approach)
  • a test design/strategy and log, showing the planned approach to verification and the results of your tests.

 

Your test would probably be best done as a comparison between two engines with the same design, but coded in C# and C++ (hence you could use your engine from COMP2351) as the basis for the C# version.  The comparison would probably need to explore some aspect of performance, however, you should also consider portability - a C# program is likely to be better optimised for a Windows-based OS than any others.

NOTE: this is likely to be very challenging for anyone who has never used C++ before!

Supervisor

Detecting Physical Misuse of Mobile Devices

damaged phone

Due to the ubiquitous and pervasive nature of mobile devices they are prone to being exposed to a wide variety of potentially hazardous environments and situations. There is a growing interest in being able to monitor and detect exposure to such environments. An example of this is the inclusion of water ingress detectors in many mobile devices that change colour when exposed to water. 

This project aims to extend the kinds of hazards that can be detected by mobile devices. In particular it should look at impact forces and generate notifications of potentially harmful forces. The project would consist of development and evaluation of potential detection techniques using existing sensors and to develop a working prototype logging and notification application.

Supervisor