... ...



    As of June 2011 I have graduated from UBC so this webpage will no longer be updated. I will be working as a software engineer at Google. When I create a new homepage, the following URL should point to it: http://byronknoll.com.


    I am currently pursuing my master's degree at the University of British Columbia. My supervisor is Nando de Freitas. I am interested in machine learning, data compression, and artificial intelligence. I have an Erdős number of three (Paul Erdős -> Maria Klawe -> Cristina Conati -> Byron Knoll).



Class Papers:

Online Tools:

Java Applets:

Online Games:

    Art Gallery Problem (2010): Geometry-based puzzle game.

    HTML5 Cards (2011): Multiplayer card games.

    Lasers (2010): Geometry-based puzzle game.

    Nort (2009): Two player game based on Tron.

    Ping (2007): Based on Pong.

    Soku (2009): Dodge soccer balls.

    Solar Hamster (2010): Entry for ImagineCup 2010 Game Design contest. Uses Silverlight.

    Swarm (2007): Control a swarm of dots.

Offline Games:

    Asteroids (2003): Dodge and destroy incoming asteroids.

    Mazza (2003): Navigate through a maze.

    Ping (2003): Based on Pong.

    Soku (2003): Dodge soccer balls.

    The Cell (2001): A bad text adventure game. Play using Adrift Runner.

    Time Stop (2009): Time Stop is a 2D physics-based puzzle game. It uses the Box2D physics engine and OpenGL. The goal is to move a blob to a star by manipulating time and moving objects.


    Arlisy (2006): Arlisy stands for artificial life synthesizer. It uses neural networks and an evolutionary algorithm to simulate the process of life. Each neural network consists of binary input states, neurons, and binary output states. Depending on how the fitness function of the evolutionary algorithm is implemented, the resulting neural network can attempt to solve a variety of interesting problems.

    Cryptomni (2007): Cryptomni is a program which can encrypt and decrypt files using the one-time pad cipher. A key file is created using the cryptographically strong random number generator SecureRandom. If a key is truly random, kept secret, and never reused, this encryption algorithm can be proven to be unbreakable.

    Padomni (2005): A simple text editor. Platform independent JAR: padomni.jar. Windows executable: padomni.exe

    siarco (2010): Two small Java classes to encode and decode files using arithmetic coding. This implementation is designed to have efficient run time, low memory usage, and optimal compression ratio. It works for any alphabet size.

    Vector playing cards (2011): A full set of poker playing cards created using vector graphics.


... ...