August 2026

You know that clever code you wrote a few months back? Nothing beats just deleting all of it! This month I’ve continued working on the world-building tools, but as part of that I’ve removed at least as many lines as I’ve added.
Show-off
Let’s kick this off with a showcase because the tool has gotten very smooth and actually kinda satisfying to draw with.
Pixelization
![]()
I mentioned 3D pixel art last month and boy was it a great idea. Not only did I add some character to the visuals, I also reduced the cost by a lot. Imagine doing raycasting per pixel at 4K versus 480x270. I was able to remove a bunch of tricks aimed toward reducing the raycasting cost, and with just a few tweaks to the gather and denoiser, the renderer now runs on my laptop without breaking a sweat.
Visuals

The foliage billboards didn’t really fit the changes to the aesthetic and they got a bit annoying to deal with when I introduced the pixelization. I rewrote my particle system to just render a huge number of quads, so now the foliage is just procedurally placed quads. It looks kinda wonky but will do for now.

As seen in the pixelization screenshot, I also added reflections to the water. I had this idea to render a sky for the reflection, but that required a lot of tweaking as well, so I put it on hold for a bit.
GPU go wroom

I put all those freed-up resources to good use immediately. I moved the voxel chunk evaluator to the GPU, which sped up the sculpting process by a lot as well. I basically send the heightmap and a culled list of edits to the GPU and ask it to generate the 64-tree used for rendering the voxels. It does so very efficiently because the problem is highly parallelizable: just one thread per leaf. Now the sculpting runs in real time, which is very nice.
Procedural details

Heightmaps are boring, let me tell you. Due to their 2D nature, they are not really able to represent things like overhangs or sharp slopes. Now with everything on the GPU, however, adding some procedural noise did not affect the evaluation speed much. There is a lot of tweaking involved, but you can already see the cliff walls getting a bit more “cliffy”.
Stamps

The next thing I’ve been experimenting with is this concept of stamps. Basically, you stamp a small voxel volume into the world’s voxels. This makes things like trees easy to implement: you just provide a few tree variations and then procedurally stamp them into the world. This is still very much a work in progress, though.
What’s next
I think the stamp system is the last piece before I have everything I need (for now) in terms of painting the world. As soon as that is in place I will likely go over everything again and tweak shapes, colors, filters, etc.