Past Projects

This is a collection of stuff I've built!

Maze Generation and Search (Interactive)

This is a algorithm demo applied to a grid. The original code can be found on Github!
Click on any grid to mark it as an obstacle, double-left click to set the start, double-right click to set the End.
Select any algorithm to see it in action!

Maze Generation

Generate a maze using Prim's random algorithm.



Traversal Algorithms

Find Start->End using DFS or BFS.



Shortest Path Algorithms

Find Start->End using Dijkstra or Bellman-Ford.



Clear Maze

Reset the maze. Clears off everything!


Game of Life (Interactive)

This is a JavaScript implementation of Conway's Game of Life. Original code can be found on Github! The rules are as the following.

Underpopulation - Cell is removed if there are less than 2 neighbours.


Overpopulation - Cell is removed if there are more than 3 neighbours.


Next Generation - Cell survives if there are 2 or 3 neighbours.


Revival - Empty cells come alive if there are exactly 3 neighbours.


Click on any cell to seed the grid with population. Start the simulation with controls below. Feel free to disturb the simulation by adding new population.



Population Generation

Click to seed the grid with a random population.



Simulation Start

Start the Game of Life simulation!



Simulation Pause

Pieces on the board are left intact by pauses.



Clear Grid

Reset the Grid. Clears off everything!


MandelBulb Video Generation (Video Demo)

This is an university project, the goal is to take a ray-traced MandelBulb and then modify the code to allow concurrent processing and to add an algorithm to traverse the exterior and generate a video.
OpenACC and OpenMP were used to parallelize the work load, the maximum speed up is 140X on a 4K video!
The original code can be found on Github!

Some Other Projects

I have done many other projects, a few other samples without interactive demos are show below.

Neural Helicopter

This project is a my attempt and evolving a neural network with an genetic algorithm. The end goal is to have the neural network play a game of Helicopter.

The best models of each generation are saved and then crossed. Mutations occur 25% of the time.

View Source!
Traveling Salesman Problem

This is my attempt at visualizing the TSP. Random coordinates are generated on a cartesian plane and we must visit every point starting from (0,0).

The correct solution is to brute every combination but greedy algorithms can generate approximate solutions!

View Source!
SNMP to MQTT IoT

This project provides an IoT Gateway for SNMP messages to be converted into MQTT ones.

SNMP datapoints can be evaluated localally and conditionally converted to MQTT. This provides a powerful monitoring tool for remotely managed SNMP-enabled devices.

View Source!