Kenny.wtf @kenny.wtf · 05/07/2026Things are looking good pairing the terrain-diffusion model output with hello-terrain! 2192
Kenny.wtf @kenny.wtf · 28/06/2026work-in-progress Donut worlds with atmospheric scattering. The dawn/dusk terminators are gorgeous #HelloTerrain #threejs #r3f 5518
Kenny.wtf @kenny.wtf · 16/06/2026Refactoring #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/2026I 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/2026Currently 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/2026I'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/2026Raycasting character controller + terrain heightmap stamps (from github.com/Roland09/Ter... ) #threejs #r3f #helloterrain 030
Kenny.wtf @kenny.wtf · 19/03/2026Terrain 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/2026My hello-terrain library is finally getting picked up by game devs :) hello-terrain.kenny.wtf #threejs #webgpu #r3f 040
Kenny.wtf @kenny.wtf · 27/02/2026The 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/2026I 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/2026Updated 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/2026Alright, 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/2026I'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/2026Introducing 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/2026I'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/2026Snowed-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/2026Enjoyed 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 · 02/11/2025Frustum-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/2025Normal 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/2025Heightmap 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 · 29/09/2025i hope i can live in a world where i never have to look upon highways again 010
Kenny.wtf @kenny.wtf · 24/09/2025wheeee, it mostly works in react-three/fiber, with updating the params in real time 050
Kenny.wtf @kenny.wtf · 24/09/2025My #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/2025Hello 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/2025Oh 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/2025The 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/2025Some 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/2025Was 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/2025This 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/2025I 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/2025Normals 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 · 02/08/2025why 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/2025I have achieved perhaps playstation-era graphics (but big scale) #threejs #procgen 171
Kenny.wtf @kenny.wtf · 25/07/2025FBM 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 · 20/07/2025Hey 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/2025Okay, 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