Hello!

My name's Phill Djonov, and I'm a video game programmer.
Sometimes I write code (and a little bit of it even makes it onto GitHub). Sometimes I solder microcontrollers to LED strips. Sometimes (rarely - too rarely) I even write stuff here.
This site's a little broken right now. Sorry about that. My old hosting provider was, uh, unhappy to discover that they'd given me a really good deal a few years back, so I'm rebuilding it bit by bit in my spare time on Azure. Good times.
Contact
I can sometimes be reached at phill@vec3.net, but absolutely never on social media. LinkedIn exists in a superposition of being social media and being not social media.
Recent posts
GJK 27 Jun 2025
A long (long) time ago I made two big posts going through the GJK algorithm, how it works, and how to implement it efficiently. They were pretty cool and even had interactive diagrams in them designed to illustrate the geometric concepts and help to intuitively communicate why things work the way they do.
Read more...Update: Getting Started with OpenSL on Android 23 Aug 2014
A while ago I made a post about the use of OpenSL on Android. That post has an error, outlined below:
Read more...WebGL Index Validation 20 Sep 2013
If you've ever browsed through the WebGL spec, you've likely seen section 6: Differences Between WebGL and OpenGL ES 2.0. Right at the top of that section, we find section 6.1: Buffer Object Binding. That section reads as follows:
Read more...Introducing HenchLua 04 Sep 2013
This is the first of a series of posts on the subject of HenchLua. HenchLua is an implementation of the Lua VM in C#. It's targeted at projects running in otherwise limited .NET contexts, such as web-based Unity games (the Unity plugin, I believe, requires pure verifiable CIL), mobile apps (which are memory-limited and must meet the limitations of Mono's full AOT compiler, or apps that run on the .NET Compact Framework (whose garbage collector has some serious performance issues, as anyone who's written an XNA game targeted at the Xbox can attest).
Read more...Bicubic Filtering in Fewer Taps 24 Oct 2012
This post is based on the technique described in GPU Gems 2, chapter 20, Fast Third-Order Texture Filtering. While that's certainly a good read, I found that the authors skipped over a lot of detail and optimized a little prematurely, making the result rather difficult to parse. If you've read and understood their paper, then this isn't going to be news to you.
Read more...Simple Flip Book Animation in WPF 13 Sep 2012
WPF makes it easy to animate numbers, colors, sizes, and a host of other properties. Unfortunately, it isn't easy to animate an ImageSource
property, which is what we're usually looking for when implementing a flip book animation. The closest we get out of the box is ObjectAnimationUsingKeyFrames, which works, but it's very tedious to set up all of the individual key frame times.
Using Win32 Icons in WPF 09 Aug 2012
Using custom icons can be a little tricky in WPF. It's simple enough if you want to use your application's main icon or an icon file that you can refer to using a pack URI - so long as you do that, everything just works.
Read more...