Art Director @TuxedoLabs. Voxels. Pixels. Polygons. Paints. Pencils. Games.

England
Joined January 2014
When I was 3yrs old, I got in trouble for trying to play with the family fish tank. Now, 100+ yrs later @threejs toys and experiments let me relive that fun. (3k lines of code, and I'm still adding things to the "sandbox".) 💦
44
201
20
2,126
288,866
#ue5 Lighting is fun
27
131
7
2,045
67,424
The game is coming together. Almost feature complete. Added some new enemies like the Skeleton Wizard that swaps position with the player if it brings him closer to a monster. #screenshotsaturday #indiedev #gamedev #ゲーム制作
8
11
94
5,111
18
57
2
904
22,932
Next game might be more stressful... Here's an early work in progress of the thing that Teardown always lacked.
135
205
15
4,540
242,437
Not sure how useful, but you can't argue with the satisfaction
76
80
9
1,845
142,536
I also got sick of opening photoshop to create dials. so here is artofpilgrim.github.io/Dials… where you can create your own. Save presets. Export as png/svg. have fun
no more having to open photoshop to create alpha textures from photos artofpilgrim.github.io/level… same process i use in photoshop: Black and White adjustment + levels but now in the browser
79
606
30
6,470
351,222
Some physically driven animation for your Wednesday afternoon. After months of trying to get RL to look nice, I've switched over to good old procedural animation.
24
40
4
826
65,933
Quick breakdown of my process for creating tileable sculpted materials in ZBrush workflow 👇 Clean tiling, strong surface detail, and game-ready results. Full breakdown: artstation.com/artwork/YG3P5… Open to work (freelance / full-time) 🚀
2
35
1
290
10,153
The Teardown Multiplayer project was a tricky one. It's finally out, and I wrote up the technical details on what we went through to get there: blog.voxagon.se/2026/03/13/t…
19
78
2
638
37,192
Adding multiplayer to this game has been far more complicated than making the entire engine for single player. This is a project that spans 3+ years and dozens of developers and now it's finally time to let it out in the wild!
🚨 Teardown Multiplayer update launches on PC March 12 – 2 PM CET 🚨 It's time to squad up and cause chaos together 💥 Co-op destruction, physics madness, campaign with friends & community mods like never before. Console version is coming later this year. Watch the trailer 👇
95
407
11
7,901
444,114
My game just got released on Steam! 🎉 #indiedev #gamedev
13
25
5
189
13,305
Next week I'll go to Breda for the Graphics Programming Conference. @GabeRundlett and I will give a presentation on Tuesday about raytracing voxels, covering methods used both in Teardown as well as our new engine. If you are also there and would like to meet up, let me know!
16
43
592
35,098
Recently had the opportunity to build 3 demos to demonstrate the power of game feel! #gamedevelopment
317
3,135
297
36,701
5,249,296
I made a game for the #zxspectrum. Again :) This is the first-ever 3D platformer for the Spectrum, featuring mind-blowing labyrinths and logical puzzles. The game has 6 unique levels, cool gameplay mechanics, and excellent responsive controls. Please vote! yrgb.org
104
315
56
1,439
86,575
27
98
4
1,818
57,892
🎶 Just dropped: the full Greenwash Gambit soundtrack by Douglas is now on Spotify! 🪐 🎧 Listen now and enjoy the rest of your weekend! 🚀 open.spotify.com/album/4IdIg…
2
1
23
5,283
In development: Teardown Multiplayer We're hard at work making Teardown even more chaotic, because why destroy alone when you can destroy together? Team Deathmatch 8-Players. Yes, it’s as glorious and messy as it sounds. 💥🔨🧨 #TeardownGame #Multiplayer #TeardownMultiplayer
53
231
24
2,723
112,439
So I discovered an interesting technique for refraction/distortions by putting the iterator step into the turbulence wave function (so each iteration has slightly different turbulence)
"Surf 2" for(float z,d,i;i++<1e2;o+=(1.+cos(i*.7+t+vec4(6,1,2,0)))/d/i){vec3 p=z*normalize(FC.rgb*2.-r.xyx);p=vec3(atan(p.y,p.x)*2.,p.z/3.,length(p.xy)-6.);for(d=1.;d<9.;d++)p+=sin(p.yzx*d-t+.2*i)/d;z+=d=.2*length(vec4(.1*cos(p*3.)-.1,p.z));}o=tanh(o*o/9e2);
38
56
5
1,013
23,605