Mike Turitzin
banner
miketuritzin.bsky.social
Mike Turitzin
@miketuritzin.bsky.social
Building a game/engine based on signed distance fields

~ Past: rendering lead @figma.com, indie VR dev, founder @ Workflowy, search backend @ Google, Quake modder

miketuritzin.com
New take on the tunnel gun:

Make a tunnel, walk through it, and then close it up behind you.

Going to experiment with this for gameplay in a mining context.
November 7, 2025 at 8:41 PM
Demo of bilinear interpolation of SDF samples:

- Negative (interior) samples of the analytic SDF are blue, positive (exterior) samples are orange.

- Circles are drawn around samples to show distance magnitude.

- Intermediate bilinear interp samples / segments are drawn.

1/
November 5, 2025 at 10:25 PM
Making an animation illustrating sparse allocation of SDF bricks:

- White line is the analytic SDF curve.

- Sparsely-allocated cells (and distance samples) are shaded.

- Yellow line in the reconstructed SDF curve from cached samples (via bilinear interpolation of distances).
October 30, 2025 at 7:33 PM
My foes when I confront them
October 28, 2025 at 6:38 PM
A lesson I've learned: digging holes into shiny red stuff always ends up looking pretty gross🤨
October 22, 2025 at 11:58 PM
Playing around with a "tunnel gun" that can open a tunnel in front of you that can be looked into or moved through.

This type of thing is really simple in my engine - just spawn an SDF capsule subtraction that is locked to the player's view.
October 14, 2025 at 7:57 PM
Playing around more with the Donut County vibes - but this time you have both a portable hole and a portable mound.

And the hole grows bigger when it consumes cubes, because that's what holes do (obviously).
October 9, 2025 at 9:42 PM
Feeding the hole.
October 9, 2025 at 1:58 AM
Herding cubes, HD remaster.
October 2, 2025 at 7:53 PM
This video shows the world-space cascades centered around the camera. If the camera hasn't moved outside of the current shadow chunk and the (SDF) scene hasn't changed, no shadow map rendering happens at all.

2/
October 1, 2025 at 9:15 PM
Finished work on directional light shadows (for now!).

This took a while because I didn't implement "normal" cascaded shadow maps (via frustum slices) but rather world-space cascades that are updated in chunks as the camera moves, and incrementally when the scene changes.

1/
October 1, 2025 at 9:15 PM
As a kludge for lack of global illumination (which I plan to add eventually), I am attenuating the visibility of ambient lighting (the skybox) deeper within the terrain.

One of the benefits of using SDFs - just eval the terrain SDF to get distance to surface for any point!
September 25, 2025 at 6:36 PM
Experimenting with a SDF material blend function that is "stamps" the material volumetrically.

The previous function I was using (which is the common one) blends the material around the surface influence area, and so would have no effect below ground.
September 12, 2025 at 9:13 PM
Almost finished implementing shadows.

This ended up being a bigger project than expected, as I decided to render world-space shadow map cascades that update/"scroll" incrementally as the camera moves.

The benefit of this is that very little work needs to be done every frame!
September 11, 2025 at 8:08 PM
Prowling around the SDF yards after dark, desecrating spheres with reckless abandon.
September 3, 2025 at 9:01 PM
Digging with spheres (🔵) vs octahedrons (🔷)
August 19, 2025 at 7:24 PM
Demonstration!
August 13, 2025 at 11:01 PM
It turns out that just subtracting the corner radius from the (uniform) scale and then offsetting the distance doesn't work as it did for boxes/cylinders here:

bsky.app/profile/mike...

This is what you get for octahedrons with that technique.

2/
August 13, 2025 at 9:52 PM
Added octahedrons to experiment with them as a digging primitive and ran into an issue when getting "corner radius" working.

This is the fixed version - very satisfying :)

(explanation below)

1/
August 13, 2025 at 9:52 PM