Rendering star fields in 3D

November 4, 2023

Pictures of stars often have these pretty lens-flare type patterns. This post will go into why they look the way they do, and how to recreate this effect in realtime 3D rendering. The short answer is diffraction spikes and point spread functions.

Rink Web 2

August 7, 2020

I recently spent a few days working on a rewrite for Rink Web, as the old interface had not aged well and was very difficult to maintain. The tech it was built on is also fundamentally incompatible with my goals, which was to make Rink Web into a progressive web app (PWA).

Value Object Oriented

July 29, 2018

Disclaimer: This won’t be the most well edited post. I haven’t made a post on this blog in 4 years, and I want to start using it to organize my thoughts and share my ideas with friends in a more structured manner than long rambles on IRC/Discord.

Refactoring Legacy Code

October 19, 2014

I've taken up maintaining a project that my friend Darkflux works on. It's called Fate of the Republic (FotR), a Star-Wars MUD. The website is, and you can connect via Telnet to

August Status Update

August 28, 2014

It's been a few months since my last post and a lot about how IntenseLogic works and how I design software has changed.

Experiences in Multi-Threading

April 11, 2014

IntenseLogic is the game engine that I've been working on for nearly two years. It has a long history of me changing things to make sure the internals are sound. In the choice of "cheap, fast, sane, quick to develop: Pick 3" I picked everything but quick to develop.

Graphics Refactor Plans

July 27, 2013

Instead of the current setup in which rendering for an object fails if the drawable, texture, or material have any sort of mismatch, there would be only one structure: a Renderer.

Replacing the file-system in an operating system

June 2, 2013

One thing that has always complicated application development and slowed down startup times, and is especially important in the mobile world, is the time and effort spent loading up files off of the filesystem, and parsing them from an intermediate representation (png images, json databases, etc.) into something actually usable. This time spent is wasted at a critical point in the time used by an application. If it were to go away, starting up a program like an email client could be so fast you wouldn't be able to tell it wasn't already running.