Here, take this.

July 25, 2014
by craij
Comments Off

Rover 2.0

As described by application owners, Whitebox Learning LLC, Rover 2.0 is a “standards-based, cloud-based virtual modeling STEM application that guides students through an engaging, realistic autonomous rover development process capped by a very cool Virtual Race…”

With this application, the student learns circuit building and visual programming. The resulting visual programming is output as a 3D simulation that they can compete with fellow classmates or students from anywhere.

I will post video of all stages (circuit building, visual programming, 3D race) once the final application has been published. Hang tight!

December 3, 2013
by craij

Flash 3D Portfolio Wall

Built this one for previous employer. Dynamic (XML) Flash 3D template for photographer portfolio sites. Some fun math!


Includes user-defined colorshifting and speed/duration of animation. Unfortunately that company no longer supports flash. :( So no guarantees how long the following link will exist…

Flash 3D Wall Screenshot

The math “sort of” explained (this is from my “wall” class, a UI Resizable Object):

// first determine new Xs and Zs //
var __x:Number = __screenWidth * Math.cos(angle1 * Math.PI / 180);
var __z:Number = __screenWidth * Math.sin(angle1 * Math.PI / 180);
var __x2:Number = __screenWidth * Math.cos(angle2 * Math.PI / 180);
var __z2:Number = __screenWidth * Math.sin(angle2 * Math.PI / 180);

// apply to wall “blocks”, left to right //

// block 0 //
var x0:Number = __positionX – __x – __x2 – __screenWidth;
var z0:Number = __z + __z2;
var r0:Number = 0;

// block 1 //
var x1:Number = __positionX – __x – __x2;
var z1:Number = __z + __z2;
var r1:Number = angle2;

// block 2 //
var x2:Number = __positionX – __x;
var z2:Number = __z;
var r2:Number = angle1;

// block 3 //
var x3:Number = __positionX;
var z3:Number = 0;
var r3:Number = 0;

// block 4 //
var x4:Number = __positionX + __screenWidth;
var z4:Number = 0;
var r4:Number = -angle1;

// block 5 //
var x5:Number = __positionX + __screenWidth + (__screenWidth * Math.cos(-angle1 * Math.PI / 180));
var z5:Number = __z;
var r5:Number = -angle2;

// block 6 //
var x6:Number = x5 + (__screenWidth * Math.cos(-angle2 * Math.PI / 180));
var z6:Number = __z + __z2;
var r6:Number = 0;

// set up matrix to be grabbed anywhere in app [x position, z position, y rotation] //
position[0] = [x0, z0, r0];
position[1] = [x1, z1, r1];
position[2] = [x2, z2, r2];
position[3] = [x3, z3, r3];
position[4] = [x4, z4, r4];
position[5] = [x5, z5, r5];
position[6] = [x6, z6, r6];

Sadly, I can’t show you the animation code from the View. I earned this one so I’m keeping it for now. :D Ping me for details. Later.

December 3, 2013
by craij


Another one of my favorite games growing up was Defender. Hours and hours of wasted time after school in jr high. So, one day while taking some PTO from my job at the time, I whipped up this little ditty. Fly around, catch some bugs. Then my wife said something to the effect of… “wouldn’t it be cute if each bug had a different sound it played?” Great idea! So I added some more to it. Deeper you get into the corner, the stronger the sound attached to that corner gets. A drum track. A melody. A bass line. You get the picture. So, as you play the game, you compose a new song!

The future of this game would include recording and storage of the newly constructed symphonic arrangement! Plus sharing with your friends, of course. ;)

Check it out!

December 2, 2012
by craij


This is a game I originally built in 2 afternoons during a slow period at work. We were publishing ActionScript 2 those days so the code was out-dated. A late night hour here and there and “wa la” I had a new engine built in AS3. I would not have returned to this game had it not been for my new interest in AIR and that an old workmate from then said “he and the others used to play that game all the time.” So, here it is! The first release has 10 levels (9 and 10 are likely unbeatable with my latest updates), 4 different enemy types, saved game states, optional virtual joystick and lots of random interactivity… which means no 2 games are ever the same. I think the real challenge will be to beat the game with both sets of controllers since they offer considerably different game play.

While contemplating the new iteration of this game I thought to myself “I’ll need mid-level screens, how boring will it be just to show text!” So I started snooping around the web looking for artistic inspiration and I happened across Jarod Lenz Erwin. Being a fan of sci-fi/fantasy illustration (my mom’s fault, an amazing artist, she used to get Heavy Metal magazines when I was a kid), I immediately liked his work. He had some sketches I found (he probably whipped them up in 2 seconds each) so I asked if I could use them in my tank game. What a find! So grateful I am Sir Lenz.

Start Screen Using Joystick Controller Game Play Screen Game Play Screen

I am asking purchasers to get involved by having them submit level designs and if I like what I see (hopefully not just a bunch of gross pictures of nether-regions) I will build the submission for TurboTank.

Keep a look out, I just may publish a “lite” version so visitors here can give it a test run.

July 26, 2012
by craij


This is an application I wrote because I enjoyed listening to my friend’s audio blog ( but got tired of having to scroll and click to play. I merely wanted to put on the headphones, press play, stare at my screen of odd looking languages and enjoy some fresh tunes. So, initially, I built this as an AIR application for my desktop. Then I thought I should set it loose on Google Play to see what happens. Totally free, totally un-advertised. Over 200 installs in under 30 days and rising fast. I love music and these guys have great taste. Check it out here: New features I intend to add in the near future: Artist artwork, Poster’s comment, Volume (mixtape) grouping and better audio controls.

Loader Screen Player Screen

Note: if it reaches 1000 active installs, I will publish for iOS.

Edit 7/31/14: something not working the same with their hosted RSS feed.  Looking into it.

July 26, 2012
by craij

Code Monkey

I am a coder…

and one day I will hire a monkey to do my job

…but I am also a climber, skiier, baller, musician, husband and father.