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. As far as I can tell, my old hosting provider was, uh, unhappy to discover that they'd given me a really good indefinite promotional rate (or something like that) which I'd held onto for longer than they intended, 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
Dynamic Descriptor Pools 01 Aug 2025
A couple days ago I wrote about my dynamic_buffer
helper which I use to push things like uniform blocks to the GPU without worrying too much about preallocating the exact amount of memory I need at application startup. Here's another helper which I use to make allocating descriptor sets easy.
Don't Forget the Inline! 30 Jul 2025
If you're writing a header file and you're at global or namespace scope, then you almost certainly do not mean to declare bare const
or constexpr
variables.
Dynamic Graphics Buffers 30 Jul 2025
Yesterday, I described a ring buffer allocator suitable for pushing data to a GPU. Today, I'm using that allocator to manage a dynamic buffer suitable for sending things like blocks of uniforms up to the GPU which automatically grows when necessary.
Read more...Ring Buffers 29 Jul 2025
Circular buffers (or queues): super useful, but also hard to implement without getting snagged up on little off-by-one errors in the code that tracks the difference between the used and free regions. So here's a quick overview of the algorithm I use for stuff like dynamic vertex and uniform buffers when I'm doing 3D programming.
Read more...Building Content: Just-In-Time Dependency Graphs 19 Jul 2025
So, I've got a little toy hobby game project that I've been working on for ages, and it has content. And that content has to be built. And building content is very annoying, mostly because it tends to have dependencies that're really hard to quickly extract ahead of time. So... I decided not to, and I built myself a build system that builds the dependency graph and the content at the same time.
Read more...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 19 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...