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
Pinned
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.
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
Just learned that the equivalent of "warp"/"wave" in ispc is a "gang".

"Gangs of Program Instances" has a certain menacing ring to it 😁
October 30, 2025 at 5:49 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
I want to save/load scene data in my engine, but I don't want to implement a real system for this yet (partly laziness, partly don't want to commit to a design).

So my quick solution is to dump literal C++ code that creates all scene objects. Then copy/paste into my init code😂
October 16, 2025 at 7:58 PM
From my notes about stuff to add in the video about my engine (lol)
October 14, 2025 at 9:55 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
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
I found that in addition to NVRHI (which I discussed previously on here) NVIDIA, somewhat confusingly, also provides NRI ("NVIDIA Render Interface").

NRI is intended to be a low-level interface wrapping D3D12 and Vulkan, whereas NVRHI also wraps these APIs but simplifies some ..
October 1, 2025 at 7:25 PM
Teardown was released 5 years ago, has sold millions of copies, and was acquired (super rare for an indie game) - and yet it still has effectively no clones/competitors.

Shows how powerful having insane technical skills can be.
September 27, 2025 at 3:24 AM
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
Reposted by Mike Turitzin
You mock, but this is actually art.
September 4, 2025 at 4:07 PM
Prowling around the SDF yards after dark, desecrating spheres with reckless abandon.
September 3, 2025 at 9:01 PM
Playing with RenderDoc's shader debugger, and the "Run forwards to NaN/Inf" feature is incredibly useful and got me to the problem in one click.

[a story continued... ⬇️ :) ]
September 2, 2025 at 1:54 AM
Nicely-explained and illustrated article on making a spherical Minecraft-style blocky world.

(with playable web demo)

www.bowerbyte.com/posts/blocky...
August 28, 2025 at 5:47 PM
TIL the concept of a "net" of a polyhedron - the way its faces can be flattened and then "folded" back together.

These are 11 nets of a cube!

en.wikipedia.org/wiki/Net_(po...
August 28, 2025 at 5:39 PM
While searching around for solutions to geometric problems, I periodically end up on this big list of PDFs written by Dave Eberly that cover a lot of topics rigorously.

Recommended!

www.geometrictools.com/Documentatio...
Geometric Tools: Documentation
www.geometrictools.com
August 26, 2025 at 6:23 PM
Great article by @aras-p.bsky.social comparing the perf of rasterizing single-pixel triangles vs. compute-shader splatting.

The most fascinating part of this is how much different GPUs differ in comparative perf, and how they respond to different scenarios.

aras-p.info/blog/2025/08...
This many points is surely out of scope! · Aras' website
aras-p.info
August 26, 2025 at 6:13 PM