Projects

Net-Set

Net-set is a colorful, fast-paced, competitive card game you play in the browser. It’s inspired by the real-life card game Set®.

The app was written in JavaScript using Node.js, Express and socket.io. Its backend uses functional programming principles and persistent data structures via the Mori library, and was developed using Mocha for TDD. The frontend makes use of jQuery and Underscore.js templates; all designs are pure CSS.

Kimi

Kimi (“Keep It MInimal”) is a lisp-like toy programming language I created to learn more about programming languages and interpreters. Its interpreter was built in Python 3 using Test-Driven Development. Kimi is a small, elegant language with a minimal set of features (see the Readme for more details).

lex4all

lex4all is a Windows desktop app written in C#. Implementing an algorithm for automatic pronunciation discovery, it uses Microsoft’s speech recognition engine for a high-resource language (e.g. English) to generate pronunciations for words in a low-resource language (e.g. Yoruba) from a handful of audio samples. Thanks to a simple GUI, the app allows even non-expert users to develop pronunciation lexicons to enable the creation of speech interfaces even in languages for which no large-vocabulary recognition engines are available. For more information, see the project website and the related publications available there.

de-stress

This prototype Computer-Assisted Pronunciation Training (CAPT) tool provides a variety of options for diagnosis of and feedback on a type of pronunciation error that is commonly problematic for French learners of German. A web app built with Groovy and the Grails framework, its backend builds upon two Java applications: JSnoori (speech processing and analysis) and Weka (machine learning).

Deeva

Deeva is a platform for experimental research on the personality traits associated with 3D virtual human avatars. It collects crowdsourced judgments about avatars and uses these to drive a genetic algorithm to progressively “evolve” avatars representative of various personality traits.

The prototype for the platform was created as a group project in the C.S. course “Software Engineering” at Saarland University. In addition to helping design and code the web application in Python/Django, my individual contributions included implementing the genetic algorithm, writing and revising project requirements, and using RedMine to manage the project and lead our 3-person team in meeting goals.

BrainLord

BrainLord is an implementation of a guessing game where the player attempts to break a secret color code. Additional features include adjustable difficulty level and a leaderboard of high scores. It is a cross-platform desktop app written in Python 3 using the TkInter package.

The Game of Life

A responsive single-page website that visualizes Conway’s Game of Life using CSS and vanilla JavaScript.

Letter frequency visualization

Built using D3, this responsive, interactive chart displays the relative frequency of letters in various languages, sorted in descending order.