Thomas Hooper's Avatar

Thomas Hooper

@tdhooper.bsky.social

Code artist. Graphics programmer (ex Jumpship Studio). Web developer (ex Last.fm). he/him mastodon.gamedev.place/@tdhooper · x.com/tdhooper · stainlessvision.com

985 Followers  |  1,491 Following  |  35 Posts  |  Joined: 21.11.2024
Posts Following

Posts by Thomas Hooper (@tdhooper.bsky.social)

Implicit Surfaces & Independent Research
YouTube video by Matt Keeter Implicit Surfaces & Independent Research

hello my talk is online now and you can watch it

www.youtube.com/watch?v=UxGx...

(it's pretty good IMHO)

12.03.2025 18:53 — 👍 66    🔁 17    💬 3    📌 0
Preview
Raymarching The Gunk How the raymarched slime was developed for the game The Gunk.

I've written an article for my webpage on how the raymarcher for The Gunk was made! jarllarsson.github.io/gen/gunkraym...
#gamedev #xbox #gp #graphicsprogramming #rendering #unreal

02.02.2025 20:08 — 👍 87    🔁 22    💬 5    📌 2
Preview
Shadertoy

Thanks for pointing this out, I think you're right. I tried a different approach; jittering the dots a little www.shadertoy.com/view/4XVBDh

28.01.2025 21:28 — 👍 1    🔁 0    💬 0    📌 0
Preview
Shadertoy

This is a lot less elegant, but kind of interesting www.shadertoy.com/view/4XGBzz

25.01.2025 03:29 — 👍 11    🔁 0    💬 1    📌 0
Preview
Shadertoy

Beautiful effect, and thank you for the detailed explainer!

I wonder how it would look with a noisier distribution of dots? Might help with the artifacts at glancing angles

Here's a rough sketch using fractal layers of voronoi www.shadertoy.com/view/M3cfWf

24.01.2025 02:10 — 👍 13    🔁 1    💬 1    📌 0
Post image Post image Post image

Exploring the fractal reef

23.01.2025 15:02 — 👍 32    🔁 6    💬 1    📌 0

cool :) I've applied

23.01.2025 12:23 — 👍 1    🔁 0    💬 0    📌 0

I am, though are they okay with fully remote? I’m in London

23.01.2025 11:41 — 👍 0    🔁 0    💬 1    📌 0
Post image Post image Post image Post image

The atomic structure of fractals

23.01.2025 03:03 — 👍 106    🔁 14    💬 2    📌 2
three.js webgl - transform controls

That’s handled by Three.js threejs.org/examples/mis...

To position them, I execute the map function separately to find the jacobian matrix of p for each gmTransform invocation

Changes to the gizmos are then sent back to the shader as uniforms

20.01.2025 20:55 — 👍 1    🔁 0    💬 0    📌 0
Video thumbnail

It's really fun to explore fractals this way tdhooper.github.io/offline-shad...

20.01.2025 17:00 — 👍 25    🔁 4    💬 0    📌 0
Video thumbnail

One of the tedious aspects of modeling SDFs with raw shader code is adjusting the position of objects, so I'm adding transform gizmos into my tool

They write changes directly to the shader on disk, so I don't need an external object hierarchy

tdhooper.github.io/offline-shad...

20.01.2025 16:57 — 👍 62    🔁 7    💬 3    📌 2
Preview
Shadertoy

Doing the same in 3D is similar, but we need to find the axis of rotation as well as that convergence point, I break that down here www.shadertoy.com/view/wslyzH

04.12.2024 15:29 — 👍 9    🔁 0    💬 0    📌 0
Video thumbnail

Once we've put all that together we can have some fun with it ;) here's the shader used to make these gifs www.shadertoy.com/view/lf3BDr

04.12.2024 15:24 — 👍 8    🔁 1    💬 1    📌 0
Video thumbnail

Finally we just need to scale exponentially instead of linearly

04.12.2024 15:24 — 👍 3    🔁 0    💬 1    📌 0
Video thumbnail

Notice there is a point that the fractal converges on, if we rotate around that, it looks better but there's still a little jump

I've a method for finding this point of convergence here www.shadertoy.com/view/tscBDH

04.12.2024 15:24 — 👍 1    🔁 0    💬 1    📌 0
Video thumbnail

We can try linearly interpolating from one transform to the next, it loops, but it's not continuous

04.12.2024 15:24 — 👍 0    🔁 0    💬 1    📌 0
Video thumbnail

Let's look at the problem in 2D, we want to achieve this, moving from one face to the next in a smooth continuous movement

04.12.2024 15:24 — 👍 0    🔁 0    💬 1    📌 0

Finding a camera path that loops seamlessly is straightforward if you're just spinning around an object, or zooming in to a point... but I wanted a path that seamlessly loops between two parts of any self-similar fractal.

04.12.2024 15:24 — 👍 0    🔁 0    💬 1    📌 0
Bloom 💀
YouTube video by tdhooper Bloom 💀

This one's from 2020, one again created entirely with a raymarching shader

www.youtube.com/watch?v=ACqg...

This time I'll talk about seamless camera movement...

04.12.2024 15:24 — 👍 25    🔁 1    💬 2    📌 1
Post image Post image

Our new Radiozoa jewelry collection and Patreon sculptures build on our work designing structures with anisotropic centroidal Voronoi diagrams. Here’s a deep dive thread on what that means and how we generate these forms.

n-e-r-v-o-u-s.com/shop/line.ph...

🧵

02.12.2024 20:09 — 👍 67    🔁 16    💬 3    📌 5
Fractal Polycephaly
YouTube video by tdhooper Fractal Polycephaly

Bluesky seems to have lost the video, so here's a link instead www.youtube.com/watch?v=ce-1...

26.11.2024 14:15 — 👍 6    🔁 1    💬 0    📌 0

I've messaged you on linkedin :)

26.11.2024 13:56 — 👍 0    🔁 0    💬 0    📌 0

Once we have these closest hexagon centers, we can calculate an SDF for the hexagon edges, use that to fracture our head geometry, and even blend smaller heads into the hexagons :)

22.11.2024 16:39 — 👍 1    🔁 0    💬 1    📌 0
Preview
Shadertoy

Here's a shadertoy with a minimal version of this geodisic tiling method www.shadertoy.com/view/XtKSWc

22.11.2024 16:25 — 👍 7    🔁 0    💬 1    📌 0
Video thumbnail

Which we use to tile the face with hexagons, I'm using a variation of this technique from Matt Zucker www.shadertoy.com/view/4d2GzV, it gives you the closest hexagon centers in 2D, which I then project onto the face in 3D by reversing the steps I used to make the uv-map

22.11.2024 16:20 — 👍 1    🔁 0    💬 1    📌 0
Video thumbnail

From these two points, we can construct a little uv-map for the section of the icosahedron face we're near

22.11.2024 16:14 — 👍 2    🔁 0    💬 1    📌 0
Preview
Shadertoy

I'm using a geodesic tiling based on subdividing an icosahedron, so we start by finding the positions of the closest icosahedron face, and a vertex on that face

I've found a pretty compact way of doing this, without iteration, here www.shadertoy.com/view/fdXcDl

22.11.2024 13:50 — 👍 8    🔁 0    💬 1    📌 0
Video thumbnail

We can speed things up by just calculating distance to the tile we're near, or even better, just the tile-corner we're near

22.11.2024 12:43 — 👍 5    🔁 0    💬 1    📌 0
Post image

I fragment the head into little hexagon tiles, so how do we find the distance to the closest tile from some position in space? We could loop through a list of tile positions, calculate the SDF for each one, and return the smallest distance... but this becomes expensive for all those march iterations

22.11.2024 12:43 — 👍 2    🔁 0    💬 1    📌 0