My last update was about a year and a half ago. I’ve been pretty busy since then, and haven’t had a chance to update this site. I hope to revamp the whole layout and make it look nicer. I started off with a change in color scheme. There’s more to come. I’ve been working on several projects, including getting introduced to the Unreal Engine. To find out what I’ve been up to, read more. Continue reading
There is a four player strategy board game I really like to play, and I couldn’t find an online version of it. I decided last year it would be a fun challenge to implement it myself. I recently added it to the programming section of this site. It was my first attempt at making a WebGL game. The game’s nature led to some difficult logic challenges. For example, to determine when a player’s game was over, I had to compute if they had any remaining moves. Continue reading
This arcade game is an Android remake of a DirectX game I made with a few friends in University. I subsequently ported the game to XNA, which vastly improved the performance and appearance. I may add these versions to the site in the future.
I decided with one of the other creators to remake the game for Android. It uses high resolution graphics and implements efficient collision detection between floating shapes. High scores are stored in an online database using PHP and SQL. The game logic was programmed in an abstract way to decouple it from the Android implementation. This will allow us to swap out different APIs without changing the main game code. The game can be accessed with a desktop or mobile phone here.
I recently added a Python script I wrote a few years ago for this website to my github. I decided I should add it to the programming section as well.
svn2ftp is a simple script which automatically uploads svn commits to an ftp server.
I’ve made a bunch of updates to the site.
- First of all, I made the header smaller, so there’s more screenspace
- I updated my photo on the about page to a more recent version
- I organized the programming page to be by date, with the most recent at top
- I added my first solo Android app to the site. You can view the details here
There reason I say first solo app is because I already have an app on the Google Play store which I made with a friend of mine. I want to make some updates to it before adding it to this site.
I have a bunch of other things in the works, so I will add them here as they develop.
One of my school projects for my Image Processing course was to develop the Weighted Voronoi Stippling paper by Secord. This paper described how to create stipple images using a source image and Voronoi Diagrams. The project was in C++, using the openFrameworks library. I wasn’t too thrilled with the end product, as it was very slow. My method of creating Voronoi Diagrams wasn’t very efficient. I found out that there’s a very fast way to create a Voronoi diagram, but this required some sort of 3D rendering. I’ve been wanting to learn WebGL for a while now, so I took this as a good first project.
I’ve added my university honours project to this website. It is called Modern to Historical Image Feature Matching. The project can be briefly described as an attempt at understanding why modern computer vision techniques aren’t successful at matching historical photos taken on film with modern digital photos. The project includes a paper (linked above), source code and a data set. The project was written in C++, using the OpenCV computer vision library Continue reading
For my Image Processing class we had to find a paper related to the course material, implement it, and extend it with features of our own. My partner and I chose X-Toon: An Extended Toon Shader. It extended the concept of toon or cel shading 3D models by using a second dimension of information to determine the level of detail to display. My partner and I implemented it in XNA, and added features of our own. We had to write a SIGGRAPH style paper, documenting our results. Continue reading
In my Artifical Intelligence class, we were asked to create two multiplayer games using the MiniMax algorithm. This algorithm has a computer player choose intelligent moves to play based off the current game state. The games we made weren’t very fun and highly unusual, so I decided to implement the classic game of Reversi to test out the algorithm.
For my fourth year Artificial Intelligence course, our first assignment was to implement the classic game Snake. The hard part was then to implement three different search algorithms so the snake will find the food by itself. The three search algorithms were Breadth First Search, Depth First Search, and A* Search.