The Things I Do

This is a collection of other things that I do on the side that's not directly related to what I do with Apps or Game development.
CMS Website (2006 - Present)
All the way back in 2000 (Yes, my High school years, if you're keeping track), I had a personal website running using the domain alphatwo-web.net. It was where I first started playing around with HTML, CSS, and using Photoshop for layout/image editing.

Fast forward to 2006, armed with some knowledge of PHP and MySQL, I had figured it'd be a good time to re-write my website. Using PHP and MySQL, I wrote a rudimentary CMS based on my specific needs. What you're reading now is the end product. This custom CMS solution was built primary within a span of 8 weeks.

Using existing layout format I had built up before, this CMS has a very simple setup requirements:
  • User login and authentication
  • Story management
  • File management
From a usability standpoint, these were the few goals:
  • Support multiple writers of needed
  • Levels of user rights for allowing posting/editing (handled via user permission)
  • Create/Edit/Publish articles
  • Submit process must require no HTML experience (Hence, posts are stored in BBCode format)
  • File and folder uploads from web interface

In the last few years though, the feature-set has been mostly stable, with modifications only when incompatibility issues arose.

In February 2011, I began work again on the CMS, fixing broken issues when the host migrated to PHP5, and resolving usability issues in terms of content management.
View Individual Post
CS488 - Lawnmower Racer (OpenGL Game) (2006)
Along with the Ray Tracer app, I also wrote an OpenGL "game", Lawnmower Racer, in 2 weeks as a final project.

Some Sample Screens:
Default view
Lot's of casted lights
Heavy Blurring when Turbo is activated.
More motion blur
Fog Enabled
Changing the FOV camera
Free floating camera


The two examples screens: Motion blur, particle effects, texture and perlin mapping, along with a giant mirror in the world to show reflections.

The basis of the project was to create a "game" or "application" that would use a laundry checklist of OpenGL features. I had decided on making a Lawnmower game, which in hindsight, wasn't the best idea. I had spent too much time tweaking the handling of the car, and eventually fell behind on the project. I was forced to reduce the scope of the project, and had started working extra hours. In the end, 60 hours of non sleep, and it is perhaps the most rewarding experience yet.
View Individual Post
CS488 - Ray Tracer Project. (2006)
In my UWaterloo 4A Term, I took the wonderful course that is CS488, Intro to Computer Graphics. So, what's so awesome about it? Ray Tracing! I'm no master at it, but it was fun times.

Here are some of the canned stuff that we had to do:
ImageImageImageHere's the set of the basic Model test: Spheres, Cubes, a regular predefined model. First as a small scene, then a bigger image (using bounding boxes), then finally as an extension for my engine: Reflections.

Then the fun one: Macho Cows!
ImageImageMacho Cows, with and without bounding boxes, along with hierarchal modelling "stonehenge" pillars. The cows were 3000 polys, which made calculations near and around the cows tediously long.

And for my final scene:
Image Image

The initial image, with a sampling error.

The final image, rendered at 1680x1050

While working on the final scene, I had ran out of time, hence, random placements of shapes and spheres. I think I had called it 4D pong.

There's actually an interesting story here. I first started with a demo scene that was 256X256 resolution, which it rendered with ease. Only when I bumped it up to 1680X1050 (My laptop's screen size) did I find a flaw. I started in a frantic trace for why the ray tracer was stalling, especially with multiple light sources and reflections.

Turns out my reflection recursion equation was wrong: for every reflected ray, I was not increasing the counter to terminate the ray, hence...non-terminating if it was getting stuck between a 2 walls.
View Individual Post

(C) Copyright 2007-2011. HaroldLi.ca. All rights reserved. Custom CMS setup (PHP, MySQL) written by Harold Li. Best viewed at 1024x768 or higher.