30 Apr 2016
Like the name suggests, react-image-timeline is an image-centric timeline component for React.js. It renders a series
of events in a vertical layout. It's lightweight, customizable, and should serve as a good starting point for
timeline UIs. I created the component to better understand
05 Sep 2015
Staff Pick & Featured on Front Page
The Pennypult is a desktop trebuchet with a unique design. It's easy to construct and powered by spare pennies. On KickStarter, it was briefly featured on the front page as a staff pick. The project was funded on the first day and reached two stretch goals! All aside, it was another fun and creative Apptivus project.
05 Sep 2014
GistList is a GitHub-integrated task list for iOS. It's Apptivus's second app and a welcome departure from games. It's a useful tool if you use markdown and Gist frequently. It's one of those apps that tries to do one thing well. It's free - give it a try.
10 Mar 2014
Featured by Apple under the Action and Arcade categories
Alien Hero is an endless runner for the iPhone and iPad. I founded Apptivus, a small company to build it. It features a lovable green alien and terrified human bystanders. If you like games like Jetpack Joyride, you might enjoy it. Additionally, it has some great artwork, sound, and music. I learned a great deal about the App Store and monetization making this. As of today, it is no longer available in the store.
13 Dec 2013
Survive! is a simple avoider game written in 48 hours for the Ludum Dare #28 game jam. It was an opportunity to experiment with Unity's new 2D rendering engine. The talented Kris Zalameda provided the artwork and design.
28 Apr 2013
This was my first submission into a Ludum Dare game competition. It's a lane-based strategy game featuring only one unit type. The contest prompt was "minimalism". I built the game in under 48 hrs and made all the art and sound from scratch. For such a simple strategy game, there is still some skill required to beat the AI.
16 Sep 2012
This is an HTML5 project that renders a battle between space ships. Each ship follows a randomly generated path while shooting missiles at enemy ships. I used this path technique in several future projects. It can be handy to generate repeating smooth paths.
12 Aug 2012
This is a demo for a random path generator. It creates smooth natural curves that are great for animating particles and movement. Under the hood, it's using bezier curves to interpolate a path along a set of control points. It's proven to be useful in future game projects including Alien Hero.
06 Jun 2012
This is a small utility I wrote to help me define gaussian kernels for use in graphics programs. It uses
raphael.js for the SVG rendering. It outputs an array definition of the kernel in tandem with the visualization.
01 May 2011
Spheres is the first app I developed for the Apple iPad. The app renders a cloud of spheres with a moving light source and camera. The goal was to use the GPU to perform the ray-tracing calculations. The performance is acceptable even on a first generation device.
24 Mar 2011
I spent some time trying to learn Interface Builder and Core Data. This what I made in the process. It's a simple iOS application that tracks scores between two players. I found using both Interface Builder and Core Data somewhat clumsy. Regardless, it was a good learning experience.
20 Dec 2010
I put together a simple ray tracer that rendered shaded spheres for a school project. Later, I extended the renderer to support indirect illumination and lens effects. Building this improved my understanding of lighting models and lens caustics.
- Area Sources
- Refraction / Reflection
- Specular and lens caustics
- Indirect illumination and color bleeding
- Tone-mapping and bloom
- Shadow caching
- KD-Tree implemented photon maps
12 Nov 2010
BubbleSnatch was my first published iOS application on the App Store. It's a physics-based puzzle game where you rescue colored sea creatures. It's an enjoyable game and was generally well received. I learned a ton from making this game and it was a good introduction to Objective-C and the iOS platform. Currently, it is no longer available on the App Store.
20 Sep 2010
In college, I solved a problem related to CCD cell arrangement in digital cameras. Artifacts were found at the boundary between light and dark areas of HDR images. In most CCD arrays, there are 3 cells per pixel (one for each color channel). The cells are arranged close together in clusters of 3. The difference in position between cells introduce errors in the captured image. To deal with this, I wrote a filter that corrects the issue. See a visualization below.
12 Apr 2010
This is an OpenGL game engine that I started writing in college. It's not complete, but, bits and pieces have made their way into my other projects. This project taught me the fundamentals of OpenGL and multi-pass rendering. It's written in C++ and runs on Windows.
- Per-pixel directional lighting
- Tangent space normal maps
- Per-pixel exponential fog
- Camera that can follow bezier curves
- Quaternion-based rotations
- Heightmap generated terrain
- Cube and sphere environment mapping
- Mesh subdivision and deformation support
- Particle systems and rigid body physics
- Per-triangle collision detection
28 May 2009
Front page - Newgrounds.com
This game was my most successful attempt at making a 3D shooter in Flash. Flash does not provide support for capturing the mouse so the controls feel a little weird. Temple features monsters, exploding barrels, and dynamic lighting. I wrote my own 3D renderer in the process. Writing the game definitely furthered my knowledge of 3D graphics and game design. The game was sponsored by MoFunZone.com.
10 Jan 2009
This was my first attempt at making a 3D first person shooter for Flash. I used PaperVision3D for the 3D rendering. At the time, it was not well-suited for games. The performance of the game is poor and sacrifices were made on the visuals. I ended up writing a more performant 3D engine for Temple, a future game. I learned a great deal making this, but, the end result is not something I am particularly proud of. The game was sponsored by ArmorGames.com.
02 Apr 2008
Front page - Newgrounds.com
3000AD is a MechWarrior-inspired action game. It features tanks, giant walking robots, and lots of explosions. This was before I started working with a designer so I had to produce the artwork myself. The game was well received in the Flash games community despite my generic artwork. The game was sponsored by MoFunZone.com.
13 Oct 2007
Front page - Newgrounds.com
01 Jul 2006
Placed in Fourth of July competition on Kongregate
This is a game like Missile Command. It features explosions big and small, bombers planes, and many powerups. Missiles placed in a Fourth of July game contest on Kongregate and I won a small lump of money. Not bad for a few hours of coding!
13 Mar 2006
This is a real-time strategy game I wrote in high school. The A* path-finding was my first introduction to search algorithms. In a sense, it was my first "big" game. I even wrote a level editor to go with it. People seemed to enjoy the game despite it's dated graphics.
23 Oct 2005
This was my first Flash submission to Newgrounds. I updated it a few times and this was the end result. I built this to testbed some physics code. It inspired me to make an action game called Zombie Slayer a couple years down the road. Writing this taught me the fundamentals of particle-based animation.
29 Jul 2005
Space Rocks is a clone of Asteroids written for Flash. It was one of many games I wrote on my journey to learn Flash. It features, powerups, lasers, and some simple particle effects. Writing the game taught me the skills to build more advanced games like 3000AD and Temple.
13 Jul 2005
Lander was the second game I wrote for Flash. It's a remake of a classic game I used to play on Windows 3.1. I added some floating boulders as obstacles. Rescue all the astronauts and return to the landing pad to win!
12 Jun 2005
Flak is the first game I wrote in Flash. It's a clone of the classic game Ack Ack with a few improvements. Coming from Visual Basic, it was great to work Flash's vector graphics APIs. ActionScript became my introduction to dynamic programming languages.