Garrett Johnson @gkjohnson.bsky.social · 21/09/2026Trying out some path traced generative yarn balls on the web 🧶 #webgpu #threejs 0100
Garrett Johnson @gkjohnson.bsky.social · 07/09/2026Equal Earth projection is coming to 3DTilesRendererJS! 🗺️ Here it is rendering TerrainRGB & vector annotations. The LA streets look a bit less square but the projection looks great! We are updating the engine so data aligns across projections, letting you render maps however you need ✨ #equalearth 051
Garrett Johnson @gkjohnson.bsky.social · 26/08/2026Taking a look around at some new models for three-gpu-pathtracer - good PBR assets make all the difference. All rendered in a web browser! Support for lights coming soon 💡 140
Garrett Johnson @gkjohnson.bsky.social · 25/08/2026Getting depth of field working with none other than the Pixar RenderMan teapot! All rendered with three-gpu-pathtracer in a browser 🫖✨ 060
Garrett Johnson @gkjohnson.bsky.social · 27/07/2026New random sampling method for three-gpu-pathtracer: blue noise dither sampling! It offsets a common random sequence for ALL screen samples, yielding a cleaner image in just a few samples. Screenshots are single sample scrambled sobol vs blue noise. Small writeup below👇 1227
Garrett Johnson @gkjohnson.bsky.social · 13/07/2026v0.9.11 for three-mesh-bvh has been released! And brings an overhaul of compute-shader functionality to improve performance, flexibility & platform support! 🚀 You can use the hooks to write your own compute traversal for custom queries, as with the shapecast function. 1/2 🧵 182
Garrett Johnson @gkjohnson.bsky.social · 06/07/2026Just finished adding anisotropy support to the WebGPUPathTracer for three.js - slowly but surely getting to feature parity with the WebGL version. All with better ergonomics, features, and performance! Transmissive materials still need work though...💡 090
Garrett Johnson @gkjohnson.bsky.social · 18/06/2026Slowly getting some additional annotations & metadata from vector tiles in 3DTilesRendererJS. Here, icons are layered on top of Google Photorealistic Tiles data so you can find landmarks & restaurants as you navigate. Road labels are up next! 🗺️ 171
Garrett Johnson @gkjohnson.bsky.social · 15/06/2026Six years later this is still one of my favorite outline effects especially for hard surface models like CAD & architecture. And now it works with three.js' WebGPURenderer thanks to a contribution from "cmhhelgeson" on Github! 5686
Garrett Johnson @gkjohnson.bsky.social · 27/05/2026It's been almost exactly 6 years since I started the 3DTilesRendererJS project at JPL. This past year alone, downloads jumped 5x to over 20,000 per week. Huge thanks to everyone who has contributed and looking forward to seeing what else people build this year! 🌏✨ 060
Garrett Johnson @gkjohnson.bsky.social · 19/05/2026Support for @mapbox.com and @protomaps.com vector tiles are coming to three.js in 3DTilesRendererJS! You can now bring vector layers in as 3D Tiles overlays to customize map coloring for visualization and branding. Or just to make something a bit chaotic 🎨🌏 1111
Garrett Johnson @gkjohnson.bsky.social · 14/05/2026Thanks to a great plugin by WilliamLiu-1997 on Github, you can now render Gaussian Splat tile sets with 3DTilesRendererJS! 1547
Garrett Johnson @gkjohnson.bsky.social · 11/03/2026Got the path tracer running on mobile with 16-bit output using Kahan-summation & residuals packed into 8 bits. I'm a bit worried about precision loss so I'll probably replace this with something else. But it still looks quite good on these simple scenes! 🦀 #threejs #raytracing #webgpu #javascript 0110
Garrett Johnson @gkjohnson.bsky.social · 03/03/2026Happy to report that Lego LDraw models are working #threejs #raytracing #webgpu #lego 180
Garrett Johnson @gkjohnson.bsky.social · 26/02/2026Using the recently-added "ObjectBVH", geometry instancing is also now supported. So complex scenes like these can finally be rendered without merging it all into a single geometry ✨ #threejs #raytracing #javascript #webgpu 1110
Garrett Johnson @gkjohnson.bsky.social · 25/02/2026Environment map sampling & backgrounds are now supported in the WebGPU path tracer! Slowly but surely we're getting features ported over. Thanks to "TheBlek" for getting this added! #threejs #webgpu #javascript #raytracing 0174
Garrett Johnson @gkjohnson.bsky.social · 09/02/2026We have a first pass at a wavefront path tracer! You can see the artifacts of thread groups pulling rays off the ring queue to trace in this slowed down video. It's not much, yet, but Im excited for what this will bring in terms of performance scalability✨ #threejs #raytracing 1100
Garrett Johnson @gkjohnson.bsky.social · 04/02/2026Spent some time today looking into WebGPU support for three-gpu-pathtracer - compute is going to make this a lot easier than WebGL. Looking into Wavefront Pathtracing next ✨ Thanks to "TheBlek" on Github for helping to get this started! #threejs #raytracing 080
Garrett Johnson @gkjohnson.bsky.social · 04/02/2026I revisited my parallel IK system for the first time in awhile to make some ergonomic improvements & got perf improved by over 50% in some cases 🦾🤖 I still have some more improvements in mind, though, when I have some more time. Repo link below 👇 #threejs #webgl #robotics 1143
Garrett Johnson @gkjohnson.bsky.social · 02/02/2026Some amazing work by Jure Triglav putting WebGPU compute and three-mesh-bvh through their paces to render surfel-based global illumination! I'm looking forward to seeing what's coming in the web in the coming years. juretriglav.si/surfel-based... #threejs #raytracing #webgpu 051
Garrett Johnson @gkjohnson.bsky.social · 29/01/2026User "web3d" over on the threejs forums using 3d-tiles-renderer to display some awesome drone scan data processed into tiles 🗺️ #threejs #gis #3dtiles 130
Garrett Johnson @gkjohnson.bsky.social · 26/01/2026Using the same scene-wide BVH you can run accelerate frustum culling, as well. With this 500,000-instance BatchedMesh culling runs in less than 1/8th the time 🚀 #threejs #gamedev 0122
Garrett Johnson @gkjohnson.bsky.social · 20/01/2026With the recent three-mesh-bvh changes you can finally make a full scene-wide BVH to accelerate physics, raycasting, etc. And at some point Pathtracing 😁 Its just a prototype so far but it "just works" with objects and batched instances in a single structure. #threejs #gamedev 061
Garrett Johnson @gkjohnson.bsky.social · 15/01/2026With the new abstractions in three-mesh-bvh, making a custom BVH is easier than ever! SkinnedMeshes can now have one created directly, leading to an over 2x perf improvement on update vs creating a new static mesh. 🚀 What else needs a BVH? 1/2 👇 #threejs #webgl #gamedev 1202
Garrett Johnson @gkjohnson.bsky.social · 08/01/2026It's been a long time coming but the latest version of three-mesh-bvh brings support for out-of-the-box Line & Point cloud BVH support! Now all your geometries can be fast 🚀 1/3 #threejs #webgl #javascript 140
Reposted by Garrett JohnsonPatrick Schroen @pschroen.bsky.social · 08/01/2026Last year I was also experimenting with @gkjohnson.bsky.social's blue noise sketches, but with my usual subsurface scattering and motion blur. alien.js.org/examples/thr... #threejs #webgl #shader #bluenoise #motionblur 141
Garrett Johnson @gkjohnson.bsky.social · 22/12/2025Im seeing a difference in behavior with deployed code on @github.com pages vs the same files locally. Has anyone seen this before? Left is edge generation run locally & right is on Github pages from one of my #threejs projects. Notice the extra lines. 1/3 👇 #webgl #javascript 120
Garrett Johnson @gkjohnson.bsky.social · 11/12/2025Thanks to amazing work from "SoftwareMechanic" on Github, the 3DTilesRendererJS project now supports GeoJSON overlays! Perfect for draping GIS datasets - region outlines, property boundaries, or GPS paths - onto any 3D Tiles data set 🗺️✨ #threejs #gis #3dtiles #maps #javascript 0132
Garrett Johnson @gkjohnson.bsky.social · 03/12/2025More graphic screenspace SDF effects 🐔🤖 #threejs #webgl #gamedev #realtimeVFX #javascript 0181
Garrett Johnson @gkjohnson.bsky.social · 18/11/2025Taking a dive into Bezier curves for fast SVG & font rendering. The curves are evaluated in a fragment shader so they're resolution independent with single-pass antialiasing📈 Cubic curves next! Though it looks a bit more complicated... #threejs #webgl #gamedev #javascript #svg 0134
Reposted by Garrett JohnsonChase Million @millionconcepts.com · 14/11/2025Here's the blooper version I mentioned. (I have no idea who the uploader is or how they got a copy of this. But I am glad that it survives.)youtube.comMars Rover Blooper ReelYouTube video by theropod 0187
Garrett Johnson @gkjohnson.bsky.social · 13/11/2025Thanks to @mrdoob.com, three-gpu-pathtracer now includes a drag-and-drop viewer for binary glTF files 🚀 I've added a link to the viewer in the repo! #threejs #webgl #raytracing 030
Garrett Johnson @gkjohnson.bsky.social · 12/11/2025These are some of the more basic effects you can make, I think, but these are outline & glow effects made with the Jump Flood SDF buffer - link to the repo below! 👇 #threejs #webgl #gamedev 1154
Garrett Johnson @gkjohnson.bsky.social · 10/11/2025Back from some time off programming with a Jump Flood Algorith demo to ease back in! JFA can be used to create a screen SDF from a model in real time - useful for things like silhouette outlines or any other visual effects. More effects coming up! ✨ #threejs #webgl #gamedev 1145
Garrett Johnson @gkjohnson.bsky.social · 06/11/2025Version 0.9.2 of three-mesh-bvh is out now and brings support for raycasting & distance queries using WebGPU compute shaders! This is the first step towards WebGPU path tracing & other compute-shader features 🚀✨ #threejs #webgpu #javascript 1121
Garrett Johnson @gkjohnson.bsky.social · 15/10/2025What are your favorite examples of documentation out there, especially for 3d libraries? What do they do well or not well? I'm considering updating some of my project docs & am looking for inspiration. Even the little things make a difference. #threejs #webgl #javascript 220
Garrett Johnson @gkjohnson.bsky.social · 01/10/2025Job update: after nearly 8 years of open source I'm excited to go independent to work on consulting & OSS dev. More details to come, but feel free to reach out about collaborations or how you can support my work! #threejs #javascript #webgl #gis #cad 1122
Garrett Johnson @gkjohnson.bsky.social · 23/09/20253d-tiles-renderer & atmospheric rendering spotted in this "Air Fiesta" hot air balloon adventure experience online! Posted by Diego_Dotta on the threejs forums 🪂 Link to the post below 👇 #3dtiles #threejs #webgl #javascript 170
Garrett Johnson @gkjohnson.bsky.social · 17/09/2025WMS Tiled Image Overlays are now in 3d-tiles-renderer! This new feature, made possible by "SoftwareMechanic" on Github, unlocks a whole suite of new data, including this USGS Hydrography dataset 🌊 Demo in thread 👇 #gis #threejs #3dtiles #nasajpl #maps #webgl 2122
Garrett Johnson @gkjohnson.bsky.social · 16/09/20253d-tiles-renderer has been gaining some real momentum this year. The number of weekly downloads has more than doubled since January to well over 7000 installs per week! 🌎✨ Sometimes I wish I knew more about where they were all coming from 😅 #gis #3dtiles #webgl #threejs 050
Garrett Johnson @gkjohnson.bsky.social · 08/09/2025The "3d-tiles" renderer is slowly becoming "any tiled data" renderer - newly added support for WMTS tiled images brings a whole new world of mapping data to #threejs. Including the massive catalogue of data from NASA GIBS! Demo below 👇 #webgl #gis #3dtiles #nasajpl #nasa 1111
Garrett Johnson @gkjohnson.bsky.social · 04/09/2025Looks like CesiumJS just released a new Martian data set on Cesium Ion! Controls and rendering work out-of-the-box with 3d-tiles-renderer, as well. Mars rover integration coming... someday? 🤖 Demo link below 👇 #threejs #webgl #gis #nasajpl #3dtiles 181
Garrett Johnson @gkjohnson.bsky.social · 11/07/2025I was doing some debugging on 3d tiles with a red color ramp & tone mapping enabled and accidentally lit Mars on fire. 060
Garrett Johnson @gkjohnson.bsky.social · 26/06/2025I've just gotten support added for starting a session & loading Google Maps map tiles with NASA-AMMOS/3DTilesRendererJS -- now you'll be able to load Google maps street & satellite data in three.js. Now I have to find time to make demos 😅 🗺️🛰️✨ #threejs #webgl #maps #3dtiles 2142
Garrett Johnson @gkjohnson.bsky.social · 23/06/20253DTilesRenderer now supports multiple tiled image overlays with different projections and per-layer tint & opacity. This video is showing a globe base layer & Washington DC overlay layer from Cesium Ion. Planar projection coming up next! #gis #3dtiles #cesiumgrant #threejs 190
Garrett Johnson @gkjohnson.bsky.social · 10/06/20253DTilesRendererJS now has initial support for TMS & XYZ tiled overlays on 3d tile sets, bringing more support for CesiumJS's terrain features. This demo is using the Swiss Alps Quantized Mesh data set w/ @openstreetmap.bsky.social images 🌎🌐 1 / 2 👇 #cesiumgrant #threejs #gis #3dtiles 193
Garrett Johnson @gkjohnson.bsky.social · 03/06/2025Some new updates to QuantizedMesh support for 3d-tiles-renderer. The spec for available tiles is now completely supported and tile gaps are now filled in by clipping the parent tile into quadrants! Texture overlays are next. 1/2 🌎 #threejs #cesium #3dtiles #gis #cesiumgrant 1132
Reposted by Garrett JohnsonChristophe Yamahata @cyamahata.bsky.social · 29/05/2025I’ve used three-gpu-pathtracer by @gkjohnson.bsky.social to create an online demonstration featuring optical prisms. The result is mindblowing, accurately capturing the multiple reflections and refractions of real-world optical elements. 🔗 Explore it on GitHub: cyamahat.github.io/three-gpu-pa... 031