About Me

I am a classically trained as electrical technologist and computer programmer. I am an avid fan of comic books, board games and DOTA. I write fantasy and science fiction short stories when I am inspired. I also draw and create video games when I am felling creative. I often undertake research projects that start off as a crazy ideas.


Research | Projects | Games | Personal


My research projects are all done on my own time, general with the assistance from academia and are often not more then just crazy ideas I wish to explore further.

Screeps AI

What is Screeps you may ask?

“It’s an open-source sandbox MMO RTS game for programmers, wherein the core mechanic is programming your units’ AI. You control your colony by writing JavaScript which operate 24/7 in the single persistent real-time world.”

Why Screeps? The most interesting thing about AI deployment around screeps is the built-in GYMS. Also, the real time game loop creates a restriction not often seen other AI development where the Training and Execution must be done in a timely matter. This is often in very small time steps over a long period as the game operates in ticks with a fixed amount of CPU time.

Check out the Source Code for different version of static systems I have created that the AI is attempting the learn from / play against.

NOTE: Some maybe incomplete or missing files required to compile. As I was using a local NPM package at one point.

Prior Work, Interesting Developments, and References:

SoundCloud Prediction

This research started as an exploration of predictions and recommendation engines and why they suck. Although this research started around text based recommendations based heavily on pass work. It quickly evolved as I needed to create my own data sets. Although I generate a lot of data the one that I felt would benefit most from a better recommendation engine was in music. It was at this time I switched from YouTube to SoundCloud and desired to combine my efforts. Through the SoundCloud API I was able to access a bunch of information about each track, include the tile, artist, etc. but always some things that I did not think would be interesting but turned out to very useful these include things like the track art, waveform, re-posting chain.

This system is not so much an AI (Although dose have some neutral networks to transform data) as it more a set of logic checks against my training set (Plus a black list but I will get that later). The system will automatically Repost tracks from my stream (My collection of followed artist) based on making it through these series of checks. I have used existing neutral networks and retrained them for my needs. I evaluate the following data points in the following ways:

Most of these process can run in parallel to each other and is none blocking towards other tracks as they come into the stream. This is possible because the tracks are all externals ID and I maintain my own Graph Database of the transient details (Most of which are purged at the end of the pipeline). After all the processed are complete for the give track the final results are used as inputs into the final AI that has only two outputs. Yes or Not to repost and which playlist to add too, if any. This playlist is important as if over result is No, but the component values are high (There could be an issue with my AI or parts of the pipeline) and as such will end up in a review playlist for me to look at a later date.

You can check out the results at SoundCloud

NOTE: I do not run the AI all the time as it dose generate a lot of data and the SoundCloud API is throttling me so the posting results show up in spurts (with often days or week before another blast).

Prior Work, Interesting Developments, and References:

Geo Adventures

The crazy idea behind Geo Adventures came when I was first introduced to Pokemon GO before its release seeing and marveling at the AR functionality but after release seeing that most people turn it off as it was not more then a gimmick that drained their batteries faster. I was dreaming about kind of game could force to the player to use AR and what types of issues is AR having in a outdoor setting that are preventing good AR games.

The basic of game itself was an RPG fantasy settings overladed on real life. This forced the player to go outside to for collections to gather resources (Battling against those whom protect it) needed to build defence for their own base, while also collecting keys to other bases (Built by other players) to battle (Now or later with key) to claim their loot.

After examining some of the previous work in the field it became clear what the major issues would be. Accurate geo-maping of the area was required to even get the basics up and running using the players location. This meant knowing the players coordinates (Include their height above sea level, not just lat and long) to with in a 1 meter or less. Not only the positioning of the player was a challenge but understanding the dimensions of the virtual environment in relation with the physical one.

Although some really great work as been done in this field with the current technology in the mobile devices means there are lots of issues, these include:

As of late 2016 all work is on hold and the game is archived until better solutions to these and other technical challenges are worked out. Although upon another review of the issues in late 2018 things are making rapid progress with ARCore.

Prior Work, Interesting Developments, and References:

VR Bio Feedback

The crazy idea to combine these two different technologies came about after a 6 hour VR session when I thought to my self

I wish the game know I was getting tried and would change the difficultly so I could have kept playing…

At that light bulb monument I was not drawn right away to Electroencephalogram (EEG) technologies exploring options to measure the bio feedback of the player as a result of this research the plans evolved into combing VR and EEG together to allow the VR environment BIO and Mental feedback about the player. VR seemed to be the best fit as you would need to wear a headset to capture the EEG readings so might as well wear a VR headset. Although this did have the unexpected benefit of EEG component offsetting weight of the VR component making the overall headset easier to wear for longer periods. After Successfully creating a proof of concept with a mobile device VR adaptor and home made EEG kit it time to upgrade to more industry standard technology and expand the original idea. I am currently waiting to acquire a Emotiv Epoc+ (EEG device) and Oculus Rift (VR device) to continue the research. Manly because Emotiv have create commercial headset and there SDK can produce the basically the same set of states my models can.

Prior Work, Interesting Developments, and References:


My ANTS (Which is short for Autonomous Neural Training and Sharing.) research started shortly after my SPIDERS research. With out any knowledge of AI and various sub fields years ago I stumble into the beginnings of neutral network design without understanding what a neutral network was. After working on my SPIDERS research I wanted to expand upon the ability for the system to learn and this where ANTS was born. Its greatest achievement was the self assembly of a system that could analysis .Net assemblies for there type information and create an abstract syntax tree (AST) of the resulting flow of types from different functions and was able to predict and then test chains of these function calls. I even moved all code into Azure for some large scale tests of running through the default .Net library’s, but in the end the cost of the project was too much to continue at scale so research was archive on 2013.


In the early years of the internet there was no google. (I know hard to believe…) In these days where you got your site list from was really a dog’s breakfast of different sources. It was not till the introduction of web crawlers that true search engines where created. When all this madness of who have the best web crawl was going on I was interested by the idea of crawling code the same way these crawlers where out there exploring the web. I create my own version of a crawler SPIDERS (Which is short for Self Propagation for Identification of Data Equality and Relationships in Subsystems) In the end it helped me explore the C and Assembly languages. I also created a version that could explore the web the same way web crawlers do, and still use it to this day to do deep dives into the search engines.


These project where born out of a personal or professional need or the want to productize a past research item. With most of my free time going to support the High Ground Vision project.

High Ground Vision

HGV started as a side project of a group of DOTA2 fans and it still operates that way. We have a number of niche tools for DOTA2. We’re also happy to share our knowledge with the community by open sourcing our stack. Development is done by volunteers contributing in their free time. Our primary focus is around Ability Draft. We also volunteer our time to moderate AD Reddit and Discord. I have a number of libraries created in C# for interact with Steam and DOTA2 for stat collection and analysis. I also plan to explore Artifact when the APIs become available.


While creating Lusus and Ur I needed a framework to handle the game state and mutations to the game state. This is where Boardgame.io comes in as it allowed me to:

Write simple functions that describe how the game state changes when a particular move is made. This is automatically converted into a working game complete with online multiplayer features, all without requiring you to write a single line of networking or database handling code.

While writing these games we found many bugs, some issues where submit while I fixed others myself. I also added a number of suggestions to improved the framework. I also submitted some other users PRs as they do not have a Contributor License Agreement with Google.

Check out the Project or Source Code


As part of my love for DnD I am working to create a Dungeon Master’s toolkit that will contain the The Systems Reference Document (SRD) under the Open-Gaming License (OGL). It will also have an API for Genesis (World create and mutation) and an API for Hoard (Items, weapons, tools, abilities, basically anything from the SRD)

Check out the Guides & the API & the Source Code

Generation X

While working a lot with SharePoint (SP) I required a means to provision the same package into multiple different SP environments and sites. This is a complex as the process of adding new artifacts is completely different to updating existing artifacts.

Check out the Source Code

NOTE: This project is Archived.

Rail Yard

Rail yard is next generation PHP framework. It brings together common patterns like MVC and ActiveRecord. It follows conservation over configuration. It is build on PHP 5 and follows PHP best practices.

Why another framework? Don’t we already have CakPHP, Code Igniter and Zend! All very good frameworks but having created applications in all these frameworks we believe that they are all missing a few key points. The first and most important problem is that routing in side of an application doesn’t just relied on a URL. Other variables like sessions or cookies can also play a part and often Ajax and/or APIs also play some part of the process. To deal with this problem RailYard using a dispatcher class that handles routing requests. Second is lack of a descent ORM. Although most people assume that the ORM is mapping to a database it could also map to a service and RailYard flows the Rails approach to handling this problem with ActiveRecord and ActiveResource. Third is how these frameworks map actions to views. It is the nature of MVC that an action is related to a view but most frameworks call a view and auto render the results. All this makes managing the layers of the application hard. In RailYard in your actions you interact with a layout object that gets render against a layout view. The content of this layout is filled by rendering views into sections of the layout object. By taking this approach we can combine views in a Object Oriented fashion.

There are more modern PHP Frameworks that handles these cases. Although it was an interesting exercise in MVC framework design.

NOTE: This project is Archived but you can still find the Source Code.


Crypto-Cartography was born out of a Hackaton that was about better passwords. My Submission is a service that provides authentication for web systems, like OpenID. What sets Crypto-Cartography apart from other systems is that your password is not entered as text but is entered by selected points on a map. With the longitude and latitude serving as the access code. By zooming down through the map to the high level of resolution, users can graphically produce a very large complex password that can be simple for the user to remember (Like their favorite landmark).

NOTE: This project is Archived but you can still find the Source Code.


Bottalk is a service for bots, devices, services and people to communicate and connect through the exchange of frequent structured messages. Why? Because the world needs and better way for technological devices to talk to each other. With Bottalk, services can post messages to a feed which other services can follow.

Bottalk was originally created before twitter but since its lunch as adapted some of its ideals. The target was home devices that could follow each other and other services for information and commands.

A prototype air conditioner was created to that monitored a feed for weather updates and adjusted its temperature range a accordingly. It was also able to monitor a feed from Ontario hydro that had information of current state of the electrical grid and would power down if in a high risk area to safe power. It could also follow my cell phone’s feed for commands and confirmation of commands.

NOTE: This project was replaced with Twitter and is Archived.

XSLT Templates

This was all years before SPA Javasript applications. XSLT seemed to the the best choice for a javascript template engine because it is standardized. As well a large collection of the internet data stores are XML, but JSON support is also needed for interaction with future applications. It also meant that the same templates that are used in the web are transferable to other environments that support XSLT.

XSLT Templates is a client side jQuery library that takes XML and/or JSON data and renders it against of XSLT template to create text, HTML, XML, or JSON. As well the library can run script(s) after the templating process to add client side logic to the processed data.

NOTE: This project is Archived in favour of Modern SPA.


I have been creating games for a long time. Since a young age I was creating my own board games for friends and family to play. I really started into Video Game development after getting involved in the RPG Maker XP community. I was involved in many popular scripts and was leading the team of people creating the first version of the SDK that was so powerful that Enterbrain included it in the next version of product, RPG Maker VX. I moved on from this basic visual editor/engine to XNA when it was release. This allowed me to create many different games and self published one on the Xbox 360 with Xbox Live networking. As XNA evolved it allow us to publish to windows phone, so I created and published windows phone game. After the death of XNA I moved into Unity development. Also, I did some board games in the browser using Boardgame.io


Game of Ur, is a two-player strategy race board game that was first played in ancient Mesopotamia during the early third millennium BC.

Just getting started check out the Source Code


You can play this game Now for free, against yourself or a friend.

The game that is like chess but with even more rules! The game works in phases. First is the Play Phase. During this phase you can use your actions to play cubies from your hand and activate certain cubies’ abilities. Then it is the Move Phase where you will move a unit on the board. Then the Draw Phase will automatically happen, where you will get a new hand and some abilities will resolve and turn counters will increase. That will end your turn and it will be the next player.

Unlike chess this game has numerous win/lose conditions. You can still win the game by capturing the opponent’s king but unlike chess there is no idea of checkmate. The act of capture is needed to claim victory (This is important because of things like traps). A number of cubies also have alternate win conditions that are specific to when the cubie is active. Also there are a number of lose conditions as well. First you can lose if you do not have enough cubies left to draw a full hand (So in a sense your bag size is like you health). Second, you can also lose if you have no valid moves to make on your movement phase.

Check out the Source Code


Traffic was created in late 2010. With the release of XNA 4 and now being able to publish a game on Windows Phone 7 as well as Xbox 360 we find ourselves building another simple game to publish on both Xbox 360 and Windows Phone 7. The game consists of a player controlling traffic lights of a pre populated city to get the average commute time below the goal. This requires using the tools of a game to figure out bottle necks, open roads, and flow patterns. The game starts off with towns and ends in a metropolis.

NOTE: As there is no longer a Zune store, it has since been lost to the sands of time.


Fishbowl was created in one week over my Christmas break in 2008. With the release of XNA networking and the 360 deployment system we were very interested in getting a simpler game together to publish. Fishbowl was born! Based on a Nut Harvest, a very addicting XNA game that was also very simple. The goal of this project was to figure out and test XNA networking. It was very interesting to deal with network prediction to get the game to work correctly. The game consists of a player controlling a fish to eat the most shrimp before the other fish. Look out for power ups and bombs! Fishbowl has accumulated over 20,000 trail downloads since January 2009. As well as covering the cost of the original assets.

NOTE: As there is no 360 indy arcade anymore, it has since been lost to the sands of time.

Camthalion of Andrill

Camthalion of Andrill was created in early 2005. It was created with RMXP an engine used by hobbits developers. I have created many RGSS scripts for the community over the years including the standard development kit (SDK) and my famed squad based action battle system (SBABS), but this is my first game created with this engine. The game consist of an RPG adventure to find a sword your father left in a temple when he was kill there. The sword belonged to the King and he asked you to return it to him. The game included many of my own scripts and was more of a test bed then a real game.

Check out the Source Code, but this requires RPG Maker XP to run.

Game Jams

I have competed in and volunteered for a number of Game Jams/Hackathons. These are all throw away, but have I have learned alot about Unity, networking, animations, physics, shaders, etc…



A collection of my sci-fi short stories


A small sample of choral paintings and pencil drawings

© 2019 - Venatio Studios