Project Ideas

The following is a list of candidate project topics that are available. These projects must still be refined by students, but are available for discussion. At the bottom are a list of topics that, if selected, means that students must waive their exclusive right to the source artifacts developed over the course of the term. Below that list are further ideas that would require acknowledgment of shared IP.

Games and social networking applications will not be considered. The effort to develop a compelling user interface with a unique and compelling storyline is substantial, and it is unlikely that such effort can be successfully completed by the end of the term. As a historical note, the average project grade of teams who insist on doing a game project is well below an A.

The instructor recommends that teams focus on applications where the use case is compelling, and the problem solved has an engineering or mathematical flavor, or is of societal benefit. Further, the team is encouraged to consider a project that can be easily demonstrated during the course of a job interview (i.e., without WiFi access, or specialized hardware).

General Topics

These topics are generally available, with no claim of ownership by the instructor unless noted otherwise. Most of these topics are based on existing applications. Graduate students are not encouraged to redevelop an app that already exists, but are instead encouraged to tie their app with their thesis/dissertation research topic.

Gear Head NEW!

Ever have trouble locating the blinker fluid reservoir for your 92 Olds Cutlass? This app would permit an augmented reality approach to indicating where certain pieces of your car that are critical to service would be located. The app should permit users to enter their car's manufacturing details and model/year information, and should then overlay on a video screen the location of key components such as oil, transmission fluid, brake fluid, etc. The project would begin by supporting a few vehicles and could be increased later. Key to the approach would be how to verify correctness of overlay, and also how to enter information into the app for a vehicle. This project requires significant knowledge of video/image processing.

Video-based Driving Lane Display NEW!

Cameras can be used to overlay an augmented reality over a user's vision. Data about the environment around a moving vehicle can be collected by visual sensors, analyzed, and displayed during operation. Analysis of the data (potentially in real time) can warn of unintentional lane departures. This project should use Android in prototyping, and could be modified to work in Google Glass for A requirements.

Impulsive Synchronization NEW!

Recent research by Prof. Ricardo Sanfelice of AME has enabled synchronization of distributed systems that have distributed timers. In a short amount of time, the distributed timers can be synchronized, allowing the system to then have events happen at specific, shared, times. This project would be focused on verifying the distributed synchronization protocol for large numbers of agents, and performing various experiments demonstrating this capability. A good example of how this could be used would be to have a group of people (say, at a gym) hold up their phones, and have the phone displays show something as a group, or flash in phase with one another.

Voice Identity Software

This application would identify a person in a database from listening to their voice (as recorded through the phone's microphone). Various use cases would be required to capture voices (and associate them with an identity), as well as select an identity based on queries (i.e., listening to their voice). It is likely that this application exists in some form for various smart mobile devices. Personnel requirements: signal processing, database management experience.

Android ZonaZoo

An iOS ZonaZoo app has been on the App Store for some time. However, UA Alumni is hoping for an Android version. In order to do this app, the developers must integrate an engineering problem into the application. Example: have users who arrive at a game take a picture from their seat, and have the app try to guess where they are sitting. Optionally, this photo can be uploaded to a UA website, which can catalog images taken from various perspectives of a game, or perhaps show seats that have images taken from the most sports events. Additional requirements include integration with Existing UA ZonaZoo FaceBook, Twitter, Flickr, etc., accounts. Personnel requirements: image processing is recommended.

Steganography

Encryption is a well-understood means of making secret communication possible, but steganography is a way of disguising even that communication is taking place. This project will involve using methods of steganography to allow communication between individuals, using a variety of methods. These may include watermarking in images, for example. The result is an ability to take an image, and share a message to those who know how to decode it, even though the image is world-readable. Note: due to difficulty of understanding this topic and the necessary math, this project is not recommended for undergraduate students.

Topics Requiring Exclusive Rights Waiver

Each of these topics may only be attempted if all students performing on that project waive their rights to exclusive ownership of the project material following this course. The instructor and collaborators have previously established the intellectual ownership of these project topics. It is important to note that students performing on these projects would be able to retain their own rights to this codebase, but the instructor (and any collaborators in the future) would have similar rights. Details of these rights will emerge as part of class discussion, or can be explored during office hours. Changes to the language regarding exclusive rights waiver are possible, pending review by UA's Office of Technology Transfer.

Point-based sensor visualization NEW!

Advanced sensors for autonomous vehicles are needed to sense the environment and make decisions. This project proposes to take Velodyne LiDAR data and displaying it on the screen of a smart phone. The data should be displayed in such a way as to indicate unsafe and safe regions for driving. Touch interaction could be used to indicated desired trajectories of the vehicle, and departure from those trajectories during operation would be displayed. Velodyne data are available from the instructor, and sufficiently advanced projects may interact directly with the device. Note: performing this project would require the authors to share code upon completion with the instructor.

Autonomous Vehicle Driving through Touch Interface NEW!

Autonomous vehicles need a simple and quick to use interface for users to program paths. The interface would need to display the location and heading of the vehicle and allow users to place waypoints on a map and to create (then display) an expected path between those points that accounts for the dynamics of the vehicle. The application should also be able to indicate and display unsafe regions for driving. This project would interact with a simulator, and must use the JAUS middleware for communication with the simulator. If the project is sufficiently advanced, it could demonstrate its feasibility on the vehicle. Note: performing this project would require the authors to share code upon completion with the instructor.

Autonomous Vehicle Operator Control Unit NEW!

This project requires the team to produce a JAUS compatible interface to display (and actuate) the information and sensors/actuators of the instructors robotic car. Although the prime method to perform the display and actuation is through message passing, this project will require significant model checking in order to demonstrate correctness of the structures used and the outcomes possible (making this an engineering, and not just an IT problem). The project will use a simulator. Note: performing this project would require the authors to share code upon completion with the instructor. Note: This project is suitable for undergraduates, graduate versions would need additional model-checking metrics or approaches, but are possible.

Circuits

The application will enable a user to draw circuits involving resisters, capacitors, and inductors with their fingers. The application should then interpret these inputs to fully assemble a circuit netlist using an accepted standard or well-documented data structure. Depending on interest, a similar project where an image of a circuit (taken by the phone camera) is converted to the appropriate data structure. The application should be able to display both the drawn/captured, and an "electronic" drawing of the circuit, for comparison.

iSpice

Using an assembled circuit (such as the one described in the Circuits application) made up of a subset of analog (probably DC) electronic components, the user can use two fingers as probes to measure characteristics such as voltage, input/output impedance, current, etc., across or along the two probed points of the circuit. The application will feature some monitor that will display the desired characteristic across the two points touched by the finger.

ECE Tour Guide

Develop a comprehensive tour of the ECE building, which can be run on a smart phone. The use case is for touring groups (e.g., high-school students) who come through the ECE building after hours, or for visitors who are trying to find a specific room. The approach may involve image processing of room numbers, installation of QR codes, etc., but should provide directions to specific rooms (from known locations). May also use specific WiFi access points to pinpoint location inside.

Potholes NEW!

Create an application that will utilize the accelerometer of the smartphone to evaluate road conditions as the vehicle is moving. The app should be able to differentiate between poor road conditions, road hazards such as potholes, speed bumps, etc. The results of road quality will be stored in a central server and shared without other app users. The resulting data will be displayed as an overlay of colors (indicating road conditions) and icons indicating road hazards.

SafeJogger

Create a SafeJogger app capable of finding the safest jogging paths of a user specified distance given with the same starting and ending intersection. Program should be capable of accessing maps database (Google, MapQuest, or custom) and crime statistics databases (public or custom) to acquire required information for user. App should then be provide a sorted lists of available routes overlaying the routes on a map. Once a route is selected, the program should export this route to a relevant running tracker type program (RunKeeper, etc.). Note: students who have completed a similar project in another course are free to reuse any code and expertise gathered in that course.

Business Card Capture

Create an app that will take a picture of business card from the phone's camera. Using OCR technology, the app will then automatically identify the relevant contact information. The identified information will be highlighted on the photo of the business cards with notation and color indicating the extracted information. The user should then have the option to reclassify the information for the available categories, and provide classification for any data the automatic detection could not identify. Once accepted the card information should be directly added to the built in contacts information for the relevant smartphone. Note: due to similarity of other apps in the App store, this project is not recommended for graduate students.

Topics that require shared IP between inventor and team

The below topics require the team to acknowledge in advance that any produced IP will be shared with the inventor afterward, including development after conclusion of the project and the course.

The Probable Golfer NEW!

Pro golfers have a caddy no just to help them pick clubs, but to help them make strategic decisions. Most amateur golfers should not trust their instincts--they should trust their prior behavior. This app will use the variance of a particular golfer with certain clubs, to select their next shot while minimizing the expected value of their score. The app should consider variables such as left/right variation, distance average and long/short variation with each club, probability of hitting a green in regulation, probability of 3-putting from certain distances, etc., as the inputs and expected values. The instructors can provide reliable data to use during simulations. Early verification and validation in this app will probably take place in MATLAB and, correctness will be determined by confirming that the App version's tests match the MATLAB test results.

Mobile Jam NEW!

The below project contains IP developed by Prof. Neifeld, and any future IP developed on it will be held jointly with him (and any future efforts after the class will be coordinated with him).

This project will enable an audience to participate in a live musical jam session in collaboration with a music coordinator. Audience members (i.e., mobile jammers - MJs) will play their phones as individual instruments. A conductor will allow a number of MJs to join in a jam session, and each musician will be able to play one or a few notes, in a particular voice (e.g., a 440Hz note on a saxophone or violin, or a 220Hz gong). The MJs (there may be any number of them), will each have their own device and will play their notes whenever they like, with the goal of producing meaningful music. Music is produced when the notes are sent to the conductor's server device (perhaps a laptop, or another mobile device itself) as messages. As the conductor's device receives messages, the notes are immediately played on the conductor's device (e.g., using a multi-timbral software synthesizer) with the correct pitch and voice. The conductor should be able to decide what notes and voices are available to audience members, potentially in a time-varying specification.

Topics that will not be permitted.

The following topics were used in previous years, and are not available this year, but could be used to stimulate other ideas, and are therefore included below.

Camera-doku (too many existing apps)

Using the camera of the phone, take a picture of an unsolved Sudoku puzzle. Transform this problem into a data structure, and solve the puzzle. Then, display an image of the solved puzzle, marking your solution as different from the captured puzzle. There are several (potential) interesting wrinkles, including evaluating partially solved puzzles for correctness (but not displaying the full solution). Note that there are several existing apps that do this already. Personnel requirements: familiarity with image processing, and constraint satisfaction tools.

Phone-to-Phone Baby Monitor (too many existing apps now)

Parents hate traveling with a baby monitor. For this app, you should permit two phones (of the same platform) to communicate over wifi (not 3G/cellular data/voice) such that one phone can be the microphone---which transmits sound, but does not receive or play any sound, and the other is the monitor, which plays sounds received by the microphone. The implementation should also include some of the following list of features: noise cancellation, visual indicators (like bars that indicate noise level), sound control (to permit only visual indicators to show), etc. Advanced or interesting projects could actually have the microphone play white noise for an infant, but remove that white noise when transmitted to the monitor, while still allowing sounds made by the infant to be transmitted. Personnel requirements: digital signal processing.