Thomas Hooper
@tdhooper.bsky.social
960 followers 1.5K following 35 posts
Code artist. Graphics programmer (ex Jumpship Studio). Web developer (ex Last.fm). he/him mastodon.gamedev.place/@tdhooper · x.com/tdhooper · stainlessvision.com
Posts Media Videos Starter Packs
Pinned
Hi Bluesky!

With the sudden closure of Jumpship, I'm looking for a new role

I'm looking for anywhere I can make beautiful things with code, my ideal role would be a mix of graphics programming, technical art, and gameplay programming (or anything else interactive)
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
Shadertoy
www.shadertoy.com
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
Shadertoy
www.shadertoy.com
Exploring the fractal reef
cool :) I've applied
I am, though are they okay with fully remote? I’m in London
The atomic structure of fractals
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
three.js webgl - transform controls
threejs.org
It's really fun to explore fractals this way tdhooper.github.io/offline-shad...
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...
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
Shadertoy
www.shadertoy.com
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
Finally we just need to scale exponentially instead of linearly
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
We can try linearly interpolating from one transform to the next, it loops, but it's not continuous
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
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.
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...
Bloom 💀
YouTube video by tdhooper
www.youtube.com
Reposted by Thomas Hooper
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...

🧵
I've messaged you on linkedin :)
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 :)
Here's a shadertoy with a minimal version of this geodisic tiling method www.shadertoy.com/view/XtKSWc
Shadertoy
www.shadertoy.com