When I find a particular topic interesting, I like to create a program to visualize or calculate it. All of the projects listed here were written by me, in C++, directly using OpenGL and Direct3D. Lately, my primary focus is permutation-based symmetric cryptography, as I find it an elegant intersection of mathematical and computer science concepts.

Performs authenticated encryption of streams using Xoofff

Windows KMDF and FreeBSD GEOM kernel drivers that provide sector-level disk encryption

Simple yet effective VPN client and server

Highly secure and efficient file transfer protocol

Highly secure and efficient virtual filesystem add-on for Kodi

A minimalistic implementation of FreeCell for Android that focuses on correctness

Pythagorean-hodograph curves form a remarkable subclass of polynomial curves that have polynomial speed functions, and thus polynomial distance (arc length) functions

Efficiently and accurately calculates discrete rotation minimizing frames of an arbitrary parametric curve using the double reflection method

Enables the user to visualize arbitrary parametric surfaces in the form <x(s,t), y(s,t), z(s,t)>

Carries out and visualizes various types of reaction-diffusion simulations

Experimentations with self-organizing maps as a way to classify and project high-dimensional data to lower dimensions

Visualizes the growing neural gas algorithm in real-time

Experimentation with cellular automaton (CA) and compute shaders

Uses a DAWG data structure to quickly enumerate all solutions given an arbitrary Boggle board

Uses a clever graph data structure (GADDAG) to quickly enumerate all solutions given an arbitrary Scrabble board, rack and dictionary

Calculates and renders a real-time visualization of a vector field given an arbitrary parametric function

Given an arbitrary shape, various types of tessellations can be realized

My very first endeavor into the world of graphics APIs

My take on Mahjong solitaire, complete with a map editor

A simple jigsaw game, but with code to dynamically and randomly generate the jigsaw pieces