Personal Projects

Kurveball
Designer-driven root motion library. C++
Kurveball is a designer-focused, curve-driven root motion library that decouples movement logic from game state.

Most movement systems rely on imperative code: "If input is held, add velocity." Kurveball flips that: you define a velocity curve (a graph of speed over time) and a few parameters (direction, axis mode, looping). The system then integrates that curve over time to calculate exact position and rotation.

The library handles the heavy lifting: numerical integration, coordinate space transforms, and masking. Motion can be looped, time-stretched, speed-stretched, bound to 3D splines, masked by axis, and more.

[Github repository]

Super Nintendo emulator. C++
WildSNES is an emulator for the Super Nintendo Entertainment System. It is a passion project still under development, and it cannot meaningfully run any commercial ROMs yet.

I have completed the emulation of the CPU itself (Ricoh 5A22), but PPU (video) emulation is only about 15% complete. SPC (sound) emulation is not implemented.

[Github repository]

Gray Day
VST Plugin. C++
A tape echo simulation inspired by the classic Echoplex and Roland Space Echo units.

[Download VST]
PyDNA
Multiplatform. Python, Tk.
An application of genetic algorithms. Uses natural selection to guide a population to have "chromosomes" that resemble an input image.

[Video/Details]
[Python Source Code]