r. j. gordon

My Projects


  • Automated Database Management was a small project I did to clean up a database at a former place of work. The database contained entries for roughly ten-thousand clients, a number of which were duplicates. The duplicates could be something along the lines of one entry for Bob and one entry for Robert, spelling errors, changes addresses and phone numbers, etc... ADBM used fuzzy-string comparison and a finely-tuned threshold to flag possible duplicates for removal.
  • MousESP

  • Mouse-based Emotional State Prediction is an odd project. This was the evolution of what originally was intended to be an adaptive/evolutionary AI combat algorithm for a video game. After major changes were made to the (never finished) horror game, combat was removed completely. MouseESP was my attempt to replicate research performed at UC Berkeley that indicated information about a persons muscle tension could be extracted by analyzing mouse signals in the context of a second-order mass-spring-damper system. The idea would be to use this extracted information (along with correlations made to it with heartbeat) to predict a players fear-level, and use that estimated fear-level in the fitness function of an evolutionary AI algorithm. The AI would be trained, in theory, to optimize for fitness in elevating a player's fear level. It would learn, and get better at, scaring the player.

    This was a mentally-draining project. It consumed the majority of my time during my senior year of high school. The idea itself was pretty ridiculous. The project was never actually fully finished, and only a small piece of it is actually documented on GitHub (as the rest was manipulation of the data in various math-tool suites). In the final days leading up to my deadline, I was able to correlate the coefficients pulled from the mouse signal data (using linear prediction) with heart-rate by comparing heart-rate data taken at the same time as the mouse signal data. I was able to guess the user's heart rate at the time the data was taken with ~13% margin of error.

    This is a project I hope to return to sometime, providing a full range of tools for emotional state prediction using only mouse movements.
  • R3CI

  • Robot Communication, Coordination, Collision and Identification, a joint-project with my good friend Paul conducted my Junior year of High School, was an attempt at developing a system for Parallax Scribbler 2 robots to communicate, perform complex coordination as a group, accurately identify other robots, and differentiate collisions between robots, along with avoiding other obstacles such as walls. It allows for complex interactions and coordination between large groups of Scribblers.

    The original plan was to use OpenCV and the camera included with the Fluke 2 (an add-on for the Scribblers). However, after this proved problematic, we instead decided to use the fact that each movement of the Scribbler's can be precisely measured in software. Therefor, if we know the starting position of all the Scribblers relative to each other, we can build a virtual map of where the Scribblers are physically. By placing this map on a server that all of the Scribbler clients can access, we were able to perform the communication, coordination, and identification functions of R3CI. Collision detection was handled using the IR sensors of the Fluke 2.
  • Other Stuff

  • There have been a handful over other projects that are not included on this page, either because I don't consider them to be particularly noteworthy, I no longer have the code, or I simply see no need to list them. These things include this website and it's previous incarnations, a piece of inventory software, a handful of scripts, and small things I did in high school.