Sign in

Kenny.wtf

@kenny.wtf
470 followers 502 following 435 posts

Big planet terrain stuff. Building geomancer.kenny.wtf, a #procgen google earth for your fantasy worlds.

PostsRepliesMedia
Kenny.wtf @kenny.wtf · 05/07/2026
Things are looking good pairing the terrain-diffusion model output with hello-terrain!
2192
Kenny.wtf @kenny.wtf · 28/06/2026
work-in-progress Donut worlds with atmospheric scattering. The dawn/dusk terminators are gorgeous #HelloTerrain #threejs #r3f
5518
Kenny.wtf @kenny.wtf · 21/06/2026
This is too much fun #HelloTerrain #threejs #r3f
060
Kenny.wtf @kenny.wtf · 21/06/2026
Late night terrainposting
040
Kenny.wtf @kenny.wtf · 16/06/2026
inverted torus world
181
Kenny.wtf @kenny.wtf · 16/06/2026
Refactoring #HelloTerrain (hello-terrain.kenny.wtf) so you can create arbitrary topologies. Here's a torus-world example. I can't wait to try out a planet-scale example of this with atmospheric scattering! #theejs #r3f
0101
Kenny.wtf @kenny.wtf · 22/05/2026
I made an interactive "poster" for next week's creative coding meetup! ccnyc.space inspired by doom metal album covers~
070
Kenny.wtf @kenny.wtf · 28/04/2026
Currently trying to figure out how to do some medieval land use simulation, but I'm having trouble thinking about the "substrate" or like basic node primitives are. Perhaps subdividing voronoi?
141
Kenny.wtf @kenny.wtf · 24/03/2026
I've uploaded a small example of a world you can walk around in, using the raycast and terrain query API of the terrain library to power a simple character controller. Go have a stroll! #threejs #r3f #HelloTerrain hello-terrain.kenny.wtf/examples/ray...
190
Kenny.wtf @kenny.wtf · 19/03/2026
Raycasting character controller + terrain heightmap stamps (from github.com/Roland09/Ter... ) #threejs #r3f #helloterrain
030
Kenny.wtf @kenny.wtf · 19/03/2026
Terrain raycasting API is working so well~ First time I've ever been able to embody a character and walk around one of my terrain scenes! #threejs #r3f #helloterrain
020
Kenny.wtf @kenny.wtf · 11/03/2026
My hello-terrain library is finally getting picked up by game devs :) hello-terrain.kenny.wtf #threejs #webgpu #r3f
040
Kenny.wtf @kenny.wtf · 28/02/2026
per-tile bounding boxes~
060
Kenny.wtf @kenny.wtf · 27/02/2026
The terrain query API is coming along well, and it's fast! ⚡ Game dev stuff like placing objects, snapping characters to the ground and responding to mouse clicks is going to be mega easy~ #threejs #tsl #webgpu
161
Kenny.wtf @kenny.wtf · 19/02/2026
I changed the backend of #HelloTerrain to use a texture atlas instead of a flat buffer, hopefully that will make it easier to interpolate between values, because I want to start putting trees and stuff on these terrains! #threejs #r3f #webgpu hello-terrain.kenny.wtf/docs/core/el...
011
Kenny.wtf @kenny.wtf · 17/02/2026
Updated the hello-terrain library to alpha.5. Now you can provide an elevation function using #threejs's #TSL to create procedural terrains or consume heightmaps (or both). ⛰️ hello-terrain.kenny.wtf/blog/posts/e...
020
Kenny.wtf @kenny.wtf · 09/02/2026
Some more dessert :)
020
Kenny.wtf @kenny.wtf · 09/02/2026
Alright, I think I might be getting someplace with this terrain library. Amazing what an environment map, a normal map, and some voronoi can do. Infinite Starlit Dessert #threejs #webgpu
1130
Kenny.wtf @kenny.wtf · 08/02/2026
I've got the heightmaps + normalmaps generating smoothly now, both implemented as extensible little worklets. I love it when a plan comes together~ It's cool to see that uniforms and parameters update and see the effects in real time #threejs #webgpu
161
Kenny.wtf @kenny.wtf · 04/02/2026
Introducing hello-terrain/work! A small reactive work-graph library for typescript! Organize compute with automatic dependency detection and aggressive memoization. Especially made for hot loops like your renderer update cycle~ hello-terrain.kenny.wtf/work
032
Kenny.wtf @kenny.wtf · 31/01/2026
Some early space ring scenes #threejs #procgen
1111
Kenny.wtf @kenny.wtf · 31/01/2026
I'm excited about terrain generation mainly because there's not nearly enough fantastic world types out there! Here's an early experiment with a hollow-earth topology. I'm looking forward to fill this with fantastical atmospherics to see how it would look. #threejs #procgen
040
Kenny.wtf @kenny.wtf · 28/01/2026
Snowed-in this weekend learning to channel-pack PBR materials and then compress them with BCn. I've been avoiding learning texturing for a long time, but I've had so much fun, and learned so many techniques. Can't wait to apply them to terrain! #threejs
030
Kenny.wtf @kenny.wtf · 23/01/2026
Enjoyed creating some new docs for my WIP terrain-rendering library for #webgpu and #threejs. I'm having a hard time architecting things, I want it to be easy to use and super-performant for large open worlds. Learning a ton in the process~ hello-terrain.kenny.wtf/docs/advance...
020
Kenny.wtf @kenny.wtf · 13/12/2025
oh yeahhhhh
a terrain scene in colorful greens reds and blues, depicting a debug for triplanar mapping
060
Kenny.wtf @kenny.wtf · 02/11/2025
Frustum-culling now comes standard in the #HelloTerrain system~ I always enjoyed the debug demonstrations like these, now I get to make my own! #threejs #webgpu #tsl #procgen
060
Kenny.wtf @kenny.wtf · 01/11/2025
Normal map compute stage - fixed ✅ You can't tell where the seams are anymore, how about that! #procgen #terrain #threejs #webgpu
020
Kenny.wtf @kenny.wtf · 31/10/2025
Heightmap compute stage: done ✅ Normal map compute stage: some flashing, overwriting index issues? 💥 Texture splatting stage: todo already feels very fast compared to previous implementation, huge terrains running at 60-120fps #procgen #threejs #webgpu #terraingen
060
Kenny.wtf @kenny.wtf · 31/10/2025
voting in nyc is fun and cool
two early voting stickers, one with a halloween theme
010
Kenny.wtf @kenny.wtf · 29/09/2025
i hope i can live in a world where i never have to look upon highways again
a view from above a highway in brooklyn, which is ugly as hell, as are all highways
010
Kenny.wtf @kenny.wtf · 24/09/2025
wheeee, it mostly works in react-three/fiber, with updating the params in real time
050
Kenny.wtf @kenny.wtf · 24/09/2025
My #webgpu compute shader terrain engine now can make LODs from a quadtree, at about 0.2ms (only when the quadtree needs to resolve, not each frame!). Next step is to use that data to generate normals and texture splats. Users can simply pass in an elevation function! #threejs #tsl #procgen
030
Kenny.wtf @kenny.wtf · 08/09/2025
Hello Terrain library progress, now using the improved terrain geometry, and a bunch of new convenient #tsl nodes~ This shows a new TerrainMesh which handles the instancing, compute shader stuff coming next. #threejs #webgpu #procgen
140
Kenny.wtf @kenny.wtf · 05/09/2025
Oh yeah this is feeling nice and slick. Going to make it easy to read from all those compute shader buffers
010
Kenny.wtf @kenny.wtf · 05/09/2025
The default planeGeometry from #threejs has this quirk in the vertices where if you pull down the outer ring to make a skirt (a way to hide terrain seams), you would get this little alcove from a crossing edge Made a new geo has four-way symmetry to fix it, it's pretty~
000
Kenny.wtf @kenny.wtf · 01/09/2025
Some bad math happening at the edges and skirts, but that's heightmap data being streamed from the compute pass only when the cpu quadtree updates. Next is to mop it up and implement the normal compute stage. #threejs #tsl #webgpu
051
Kenny.wtf @kenny.wtf · 31/08/2025
Was able to get a compute stage set up. Now I'll write all the data to a heightmap, normals, and texture splat buffer for each node only when the quadtree resolves differently, instead of doing it for each vertex each frame. #threejs #tsl #webgpu #procgen
010
Kenny.wtf @kenny.wtf · 14/08/2025
This looks and feels amazing. How far a little bit of quadtrees and textures will get you. Zooming off a drop from a 100km tall "mountain" #threejs #tsl #webgpu
1131
Kenny.wtf @kenny.wtf · 12/08/2025
I think this is textures working, weighted by slope and texture heightmaps. The textures are pretty detailed which creates a lot of noise when far away, I wonder how to fix that #threejs #webgpu #tsl
240
Kenny.wtf @kenny.wtf · 03/08/2025
Normals are now blended properly according to this wonderful article, so they're reoriented to the underlying surface: blog.selfshadow.com/publications... I've made a gist of the #TSL: gist.github.com/kenjinp/5900... #threejs
050
Kenny.wtf @kenny.wtf · 03/08/2025
Dunesea with 1km tall dunes 🐪🐪🐪 #threejs #procgen
2294
Kenny.wtf @kenny.wtf · 02/08/2025
A dune sea with distinct ID's for each dune!
031
Kenny.wtf @kenny.wtf · 02/08/2025
why don't you go low-flying with me this weekend? #threejs #procgen r3f.maximeheckel.com/webgpu/gpu-q...
070
Kenny.wtf @kenny.wtf · 01/08/2025
I have achieved perhaps playstation-era graphics (but big scale) #threejs #procgen
171
Kenny.wtf @kenny.wtf · 26/07/2025
everything looks better with some cheap fog
A procedural terrain scene with fog implying large scale, with a large 10km red sphere in the distance
130
Kenny.wtf @kenny.wtf · 26/07/2025
(bad) textures
a procedurally generated landscape with jarring transitions between stone and a light colored grass texture
020
Kenny.wtf @kenny.wtf · 25/07/2025
FBM noise looks pretty good, still trying to figure out how to get the normals to be calculated on the frag shader with TSL. At least I think that's the problem, the shading is flat on the polygons. #threejs #procgen
010
Kenny.wtf @kenny.wtf · 22/07/2025
hop in nerds, we're doing huge webgpu worlds~ #threejs
060
Kenny.wtf @kenny.wtf · 20/07/2025
Hey TSL isn't so bad, just need to figure out how to get the worldUV in all my nodes... Very fun to play with. I wanted to light all the rivers into a rainbow, but best I got was sea level. #threejs
020
Kenny.wtf @kenny.wtf · 19/07/2025
Okay, I managed to get terrain skirts looking okay and math'd a bit better, even though my plane tiles have two more triangles than they should ¯\_(ツ)_/¯
020