Agar.io

Agar.io
Unfinished. My attempt at re-creating the user experience of the popular game, Agar.io.

Diffusion - Limited Aggregation

Diffusion - Limited Aggregation
Falling cells are added to the structures formed by those which have fallen previously. Execution ends when a structure reaches the top of the canvas.

Fireworks

Fireworks
2-D representation of a fireworks show, with randomized colors.

Flappy Bird

Flappy Bird
Rudimentary implementation of the infamous game, Flappy Bird. Currently uses the spacebar to Flap, or to restart after the inevitable fall.

Fractal Trees - L-System

Fractal Trees - L-System
Tree representation of a Lindenmayer system. Product of the generation rules are outputted to the user in text format, and as an image.

Fractal Trees - Object-Oriented

Fractal Trees - Object-Oriented
Object-Oriented approach to fractal tree generation. Tree steps through generative cycle as the user clicks on the image.

Fractal Trees - Space Colonizer

Fractal Trees - Space Colonizer
Tree branches curve to reach the nearest nodes. Nodes left after completion are due to branches being equidistant between multiple nodes.

Fractal Trees

Fractal Trees
Graphical representation of a fractal tree, allowing slider interface for modifying the angle of repetition.

Mandelbrot Set

Mandelbrot Set
Graphical representation of the Mandelbrot Set. Sliders allow the user to manipulate the bounds shown within the window.

Matrix Digital Rain

Matrix Digital Rain
Implementation of the falling text graphical effect used in The Matrix.

Maze Generator

Maze Generator
Graphical maze generator, implemented with recursive backtracking algorithm.

Mitosis

Mitosis
Unfinished. Representation of cellular mitosis. Clicking on a cell causes the cell to divide into smaller cells.

Perlin Noise Flow Field

Perlin Noise Flow Field
Perlin Noise is utilized to generate a field of preferred movement vectors. Particles traverse the field, and their paths are drawn to the screen over time.

Phyllotaxis

Phyllotaxis
Representation of the botanical phenomenon of phyllotaxis (radial arrangement of leaves or petals).

Poisson-Disc Sampling

Poisson-Disc Sampling
As Jason Davies puts it, "Poisson-disc sampling produces points that are tightly-packed, but no closer to each other than a specified minimum distance, resulting in a more natural pattern."

Pong: 1-Player

Pong: 1-Player
Single-player version of the game Pong. Up- and down-arrow keys control movement of the player's paddle.

Pong: 2-Player

Pong: 2-Player
Two-player version of the game Pong. Left-hand player's paddle is controlled with the 'W' and 'S' keys, while the right-hand player's movement is controlled with the Up- and Down-arrow keys.

Reaction Diffusion

Reaction Diffusion
Simplified representation of a one-component reaction-diffusion model. Laplace transformation is approximated for calculations.

Smart Rockets

Smart Rockets
Unfinished. Evolutionary algorithm allows rockets to gradually become better at hitting the target, over time.

Snake

Snake
Recreation of the popular game, Snake. Arrow keys control the player's movement.

Space Invaders

Space Invaders
Simple implementation of the famous game, Space Invaders. Left- and right-arrow keys control the player's movement, and spacebar allows the player to fire. Mouseclick also perofrms these functions, in order to support to provide touchscreen support.

Sticker Sweeper

Sticker Sweeper
Homage to the fantastic game, Minesweeper. Mines have been replaced with 'stickers' (burrs from a briar bush), as they are arguably more commonly encountered.

Super Ellipse

Super Ellipse
Allows for manipulation of the superellipse with a slider. A superellipse (A.K.A. Lamé curve) is a closed curve which preserves symmetry along both of its axes.

Super Shapes

Super Shapes
Implementation of Paul Bourke's formula with 'n' set to 1 and 'm' mapped to an oscillating sine function.

Tetris

Tetris
Recreation of Tetris. Left- and right-arrow keys allow the player to move, down-arrow for slow drop and up-arrow for immediate drop. 'Q' and 'W' keys control rotation, and 'D' allows the player to Hold a piece. 'P' will pause the game.

Traveling Salesperson

Traveling Salesperson
Small-scale representation of the classical Traveling Salesman problem. Points are randomly placed, and the optimal path is found exhaustively.