A project combining my interests in programming and martial arts, Pyramids is a web-based system for coordinating a taekwon-do competition. The system handles enrollment to the event, dividing competitors into categories, category merging, match scheduling and result generation.
The target audience of Pyramids is small competition organizers, and its main goal is to save time. Thus, usability was the major concern when designing the system. A quick prototyping cycle was employed when designing the system: only a few weeks were between the beginning of implementation and the first competition it was used in. Learnings from user testing made further design choices much easier.
Built on top of my Bachelor's thesis, Soundcheck is a physical interface to online chess. The user of Soundcheck plays chess on a normal chessboard, and his moves are automatically relayed to a server with the help of a camera and a computer vision algorithm. The opponent's moves are spoken out to the user, who then moves the opposing pieces on the board. While a computer is naturally a requirement of play, all actions of a normal chess game can be carried out using only the chessboard, without touching the keyboard or mouse.
Soundcheck combines a challenging computer science problem with user-centered design. Tuning the computer vision algorithm to perform reliably in different lighting conditions was not an easy task, and many different approaches and details were considered when designing the user interface, which consists of mostly speech. The code gluing the computer vision component to the user interface and chess server can handle many kinds of error conditions that the user can put themselves into.
Aalto Social Interface
Aalto Social Interface, ASI for short, is a platform that powers social media applications in the scope of the OtaSizzle research project. Built with Ruby on Rails, it implements a RESTful API for sharing social networks, groups and other resources commonly required by social media applications. Using ASI, an application does not necessarily need to have its own database at all to function.
Designed as an aid to children's audiometry, Herring is a gaming system that keeps the child occupied while his or her hearing is tested. The challenges of building Herring were (as usual) mainly in the human side of things: What do children like? How do we keep them interested – but not too interested? Many iterations were performed before settling on the final three games.
As the correct operation of Herring requires interfaces to clinical audiometers, some of which sport obscure protocols of communication, quite a bit of reverse engineering and detective work was required to make Herring function well.
A part of a student project I was hired as a contractor to work on, the ED website is a prototype of a social web application for drivers. The main requirement in the ED project was speed of development: a website full with logins, social networking, graph drawing and the like was required to be put up over the course of two weeks.
A spinoff of a multimedia programming course project, GENErator is an artificial intelligence application that, with the help of its user, produces abstract art. GENErator employs genetic programming to produce a massive amount of complex picture functions, among which the user can pick his or her favorites. The results are excellent for phone background images!
A project way too big for freshman year programming, RoboSoccer is a complete simulation of the game of soccer – with the exception that players are assumed to be round objects with robot-like qualities. Each player thinks for itself, and the result is like two smart flocks of birds playing football. Full with different teams with different characteristics and tactics, RoboSoccer is a tantalizing screen saver.