Sign in

Thomas Hooper

@tdhooper.bsky.social
1K 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

PostsRepliesMedia
Reposted by Thomas Hooper
Matt Keeter @mattkeeter.com · 12/03/2025
hello my talk is online now and you can watch it www.youtube.com/watch?v=UxGx... (it's pretty good IMHO)
youtube.com
Implicit Surfaces & Independent Research
YouTube video by Matt Keeter
57718
Reposted by Thomas Hooper
Jarl Larsson @jarllarsson.bsky.social · 02/02/2025
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
jarllarsson.github.io
Raymarching The Gunk
How the raymarched slime was developed for the game The Gunk.
59022
Thomas Hooper @tdhooper.bsky.social · 28/01/2025
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.com
Shadertoy
010
Thomas Hooper @tdhooper.bsky.social · 25/01/2025
This is a lot less elegant, but kind of interesting www.shadertoy.com/view/4XGBzz
shadertoy.com
Shadertoy
1110
Thomas Hooper @tdhooper.bsky.social · 24/01/2025
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.com
Shadertoy
1131
Thomas Hooper @tdhooper.bsky.social · 23/01/2025
Exploring the fractal reef
1326
Thomas Hooper @tdhooper.bsky.social · 23/01/2025
cool :) I've applied
010
Thomas Hooper @tdhooper.bsky.social · 23/01/2025
I am, though are they okay with fully remote? I’m in London
100
Thomas Hooper @tdhooper.bsky.social · 23/01/2025
The atomic structure of fractals
210614
Thomas Hooper @tdhooper.bsky.social · 20/01/2025
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
threejs.org
three.js webgl - transform controls
010
Thomas Hooper @tdhooper.bsky.social · 20/01/2025
It's really fun to explore fractals this way tdhooper.github.io/offline-shad...
0254
Thomas Hooper @tdhooper.bsky.social · 20/01/2025
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...
3627
Thomas Hooper @tdhooper.bsky.social · 04/12/2024
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.com
Shadertoy
090
Thomas Hooper @tdhooper.bsky.social · 04/12/2024
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
181
Thomas Hooper @tdhooper.bsky.social · 04/12/2024
Finally we just need to scale exponentially instead of linearly
130
Thomas Hooper @tdhooper.bsky.social · 04/12/2024
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
110
Thomas Hooper @tdhooper.bsky.social · 04/12/2024
We can try linearly interpolating from one transform to the next, it loops, but it's not continuous
100
Thomas Hooper @tdhooper.bsky.social · 04/12/2024
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
100
Thomas Hooper @tdhooper.bsky.social · 04/12/2024
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.
100
Thomas Hooper @tdhooper.bsky.social · 04/12/2024
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...
youtube.com
Bloom 💀
YouTube video by tdhooper
2251
Reposted by Thomas Hooper
Jesse Louis-Rosenberg @nervousjesse.bsky.social · 02/12/2024
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... 🧵
36716
Thomas Hooper @tdhooper.bsky.social · 26/11/2024
Bluesky seems to have lost the video, so here's a link instead www.youtube.com/watch?v=ce-1...
youtube.com
Fractal Polycephaly
YouTube video by tdhooper
061
Thomas Hooper @tdhooper.bsky.social · 26/11/2024
I've messaged you on linkedin :)
000
Thomas Hooper @tdhooper.bsky.social · 22/11/2024
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 :)
110
Thomas Hooper @tdhooper.bsky.social · 22/11/2024
Here's a shadertoy with a minimal version of this geodisic tiling method www.shadertoy.com/view/XtKSWc
shadertoy.com
Shadertoy
170
Thomas Hooper @tdhooper.bsky.social · 22/11/2024
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
110
Thomas Hooper @tdhooper.bsky.social · 22/11/2024
From these two points, we can construct a little uv-map for the section of the icosahedron face we're near
120
Thomas Hooper @tdhooper.bsky.social · 22/11/2024
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
shadertoy.com
Shadertoy
180
Thomas Hooper @tdhooper.bsky.social · 22/11/2024
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
150
Thomas Hooper @tdhooper.bsky.social · 22/11/2024
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
120
Thomas Hooper @tdhooper.bsky.social · 22/11/2024
Before I continue, a primer on ray marching SDFs: While ray marching, you take your current position on the ray, with which query the SDF for the distance to the geometry surface, and step forward along the ray by that distance. Eventually you either converge onto the surface, or shoot past it
100
Thomas Hooper @tdhooper.bsky.social · 21/11/2024
Creating a realistic head this way, with just code, is no easy task. To make life easier I grabbed a polygonal modal from Daz 3D, and 'traced' it with my SDF I made a couple of views to visualize the difference between the poly and sdf geometry, a left/right split, and a camera-depth comparison
2120
Thomas Hooper @tdhooper.bsky.social · 21/11/2024
The head is a distance field, mostly constructed using metaballs and a lot of smooth-blended CSG primitives, about 500 lines of glsl www.shadertoy.com/view/wlf3WX Here we can see the primitives as they are blended together (Thanks teadrinker for this visualisation www.shadertoy.com/view/tlByzR)
1150
Thomas Hooper @tdhooper.bsky.social · 21/11/2024
Let's post some old work with a little behind-the-scenes This loop, Fractal Polycephaly, won the 2019 Revision Demoparty animated GIF competition It's rendered entirely within a raymarching shader, there's no polygonal geometry
610520
Thomas Hooper @tdhooper.bsky.social · 21/11/2024
At Jumpship I was most notably behind all things 'sediment', you can read a bit about it here store.steampowered.com/news/app/167... and store.steampowered.com/news/app/167...
store.steampowered.com
Somerville - Building Sediment Part 2: Visuals - Steam News
We're back with part 2 of our technical breakdown of sediment, this time focusing on the visuals, you can find part 1 here: Building Sediment Part 1: Gameplay Systems The look of sediment evolved radi...
1102
Thomas Hooper @tdhooper.bsky.social · 21/11/2024
If you're reading this you're probably familiar with my shaders, you can take a closer look on instagram instagram.com/tdhpr or shadertoy shadertoy.com/user/tdhoope...
instagram.com
Login • Instagram
Welcome back to Instagram. Sign in to check out what your friends, family & interests have been capturing & sharing around the world.
100
Thomas Hooper @tdhooper.bsky.social · 21/11/2024
I've been in games for 5 years, and was in web for 12. I've strong c#, hlsl/glsl, graphics, path-tracing, proc-gen, python, and js experience, and welcome picking up new tools on the job.
120
Thomas Hooper @tdhooper.bsky.social · 21/11/2024
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)
77527