KC, K Do

Mobile apps, desktop apps, websites, and web apps.


Wing Blender

A Wing Commander: Prophecy/Secret Ops 3D model exporter for Blender.

Wing Blender

Learn4Life

An iOS app to teach life skills.

Learn4Life

Northern Ontario Repeater Listings

A new and improved database website for amateur radio repeaters in northern Ontario.

Northern Ontario Repeater Listings

Bedazzled Dance Champions website

The new website for Bedazzled Dance Champions.

Bedazzled Dance Champions

Freedoom

Free game data for the id Tech 1 engine.

Freedoom

WolfenDoom: Blade of Agony

A total conversion for GZDoom, based on id Software's Wolfenstein series.

WolfenDoom: Blade of Agony

weeWX

An open source weather tracker

weeWX

Wing Blender

Wing Blender

Wing Blender is an addon for Blender which allows users to export models they create in Blender to VISION engine (Wing Commander: Prophecy, Wing Commander: Secret Ops) format.

I was the main author of this plugin, and I collaborated with others when I needed help with the code, or making important design decisions.

Learn4Life

Wing Blender

Learn4Life was an iOS app that was meant to teach general life skills to people with learning disabilities.

Content is organized into courses. Each course has one or more chapters. A chapter has one or more lessons, each with an illustration that may or may not be animated.

At the end of each chapter is a quiz, with one or more multiple choice questions, each with two or more answers. The questions have no time limit, and can be answered until the user answers correctly.

The app uses the built-in iOS text-to-speech engine to read the lesson and quiz content to the user.

The content for the lessons and quizzes is loaded from built-in XML files.

I wrote the code for the app, did most of the drawings, and commissioned some drawings from Andrea Burton.

Northern Ontario Repeater Listings

Northern Ontario Repeater Listings

The Northern Ontario Repeater Listings website allows people who operate amateur radio repeaters to check which frequencies are used by other repeaters in the Northern Ontario region, and decide how to set up their own repeaters.

I re-wrote the Northern Ontario Repeater Listings site from scratch using PHP with the CAPTCHA, HTML purifier, and Markdown libraries on the server side, along with Twitter Bootstrap, and an OWASP password strength test JS library on the client side.

The new site supports mobile devices, uses Google Maps for displaying and editing the locations of each repeater, supports Markdown for text content, and protects against cross-site scripting and cross-site request forgery attacks.

Bedazzled Dance Champions

Bedazzled Dance Champions website

I wrote the HTML, CSS, and Javascript code for an experimental version of the 2017 Bedazzled Dance Champions website, which is pictured above. The site was built using the Ruby on Rails web framework.

The design is based on a PDF I received from the person I was working for.

I also worked on a mobile app that records audio from each Dance competition. I added code to sort each competition by date, and control when the app is allowed to upload recordings.

Freedoom

Freedoom

Freedoom is a free-content project that aims to create a set of game data (WAD) for the id Tech 1/Doom engine.

I created a set of textures that mimic the new textures from Final Doom: The Plutonia Experiment, and replaced or improved some of the existing textures using various public domain images from Flickr and OpenGameArt.

WolfenDoom: Blade of Agony

WolfenDoom: Blade of Agony

WolfenDoom: Blade of Agony is a standalone total conversion for GZDoom based on id Software's Wolfenstein series.

I re-wrote the dialogue to make it grammatically correct and fit it within the box at the top of the screen. I also wrote the unix build script, made several fixes and additions to the code, several gameplay bug fixes and balance tweaks, and created a 3D model of a Feld Hell machine.

weeWX

weeWX

weeWX is open-source weather station software. It allows you to connect weather station equipment to your computer, and track the weather over time using data from your weather station.

I added code to the Argent Data Systems WS1 driver for weewx so that it can get data from a TCP/IP connection.