Will Usher's Avatar

Will Usher

@willusher.io.bsky.social

Scivis, raytracing and graphics at https://www.luminarycloud.com/ by day. ChameleonRT (http://chameleonrt.com) & WebGPU by night Site: https://www.willusher.io/ @willgfx@mastodon.social

281 Followers  |  212 Following  |  13 Posts  |  Joined: 18.11.2023  |  1.8642

Latest posts by willusher.io on Bluesky

44-Issue 8 High-Performance Graphics 2025

All HPG 2025 papers are now available on the EG digital library.
CGF papers: diglib.eg.org/handle/10.23...
Conference papers: diglib.eg.org/handle/10.23...
It has been a huge honor to act as HPG papers chair and guest editor and I look forward to an exciting program in Copenhagen.

21.06.2025 08:12 β€” πŸ‘ 52    πŸ” 24    πŸ’¬ 1    πŸ“Œ 0
Preview
Understanding The Math Behind ReSTIR GI Recently, I had the pleasure of contributing to Nvidia’s Zorah project, the flagship demo for the RTX 50 Series GPUs. My primary role was to provide technical support for light transport in Zorah, whi...

Here is a new blog post of mine, where I dive deep into the theory and math behind ReSTIR GI.

Big thanks to Markus Kettunen for verifying the theory, reviewing the article, and catching a key detail I had missed.

agraphicsguynotes.com/posts/unders...

10.05.2025 00:11 β€” πŸ‘ 101    πŸ” 30    πŸ’¬ 1    πŸ“Œ 1
Large Scale Scientific Visualization with WebGL, WebGPU & WebAssemply at 3D on the Web 2025
YouTube video by The Khronos Group Large Scale Scientific Visualization with WebGL, WebGPU & WebAssemply at 3D on the Web 2025

I gave a talk on large-scale data visualization on the web at the 3D on the web meetup last month at GDC, check it out
youtu.be/HzcFzCkt5aU?... to hear about what I'm up to with #WebGL #WebGPU #WebAssembly #Jupyter and some challenges I'm working on that I'd love to chat about!

19.04.2025 17:59 β€” πŸ‘ 9    πŸ” 4    πŸ’¬ 1    πŸ“Œ 0
Preview
3D on the Web Deploying and developing royalty-free open standards for 3D graphics, Virtual and Augmented Reality, Parallel Computing, Neural Networks, and Vision Processing

If you're interested in 3D on the web and in the bay area next week for GDC/GTC or just live there, come by the meetup on Wednesday www.khronos.org/events/3d-on... ! There's a good line up of talks, I'll be talking about bringing scivis to the web w/ #WebGL / #WebGPU / #WASM

13.03.2025 02:31 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
What's New in WebGPU (Chrome 134) Β |Β  Blog Β |Β  Chrome for Developers Improve machine-learning workloads with subgroups, shader compilation time improvements on D3D12, remove float filterable texture types support as blendable, and more.

WebGPU Subgroup operations are the big new feature available in Chrome 134! developer.chrome.com/blog/new-in-...

04.03.2025 19:29 β€” πŸ‘ 16    πŸ” 5    πŸ’¬ 0    πŸ“Œ 0
An unlabeled satellite image is on the right and one with red/blue regions marking flood and dry zones on the left. Text in the middle states it took 10 clicks to label 6.9 million pixels

An unlabeled satellite image is on the right and one with red/blue regions marking flood and dry zones on the left. Text in the middle states it took 10 clicks to label 6.9 million pixels

Our paper on elevation-aware flood extent mapping brings topologically guided segmentation to the web for crowdsourced labeling. ML flood mapping models trained on these maps w/ our correction framework get similar quality as those w/ solely expert labels! PDF: www.willusher.io/publications...

27.02.2025 05:30 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

A Stack-Free Traversal Algorithm for Left-Balanced k-d Trees
jcgt.org/published/00...

25.02.2025 16:14 β€” πŸ‘ 37    πŸ” 13    πŸ’¬ 0    πŸ“Œ 0
Preview
Release === v1.26.0 === (6 February 2025) Β· ispc/ispc ISPC release featuring improved ARM support, new "generic" targets that simplify ISPC's internal design and streamline the addition of new targets, improved code generation across x86 and ARM, and ...

πŸš€ New ISPC v1.26.0 Release! πŸš€
πŸ”Ή Improved ARM support & performance
πŸ”Ή New "generic" targets simplify ISPC design & ease new targets support
πŸ”Ή Better code generation for x86 & ARM
πŸ”Ή Lots of stability fixes
github.com/ispc/ispc/re...

07.02.2025 18:30 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
Scaling multithreaded WebAssembly applications with mimalloc and WasmFS Β |Β  Articles Β |Β  web.dev WasmFS and the mimalloc feature in Emscripten can help a lot with allocation and I/O performance. This guide shows how these features can lead to speed improvements of 10 times or more in some cases.

πŸ“’ Scaling multithreaded #WebAssembly applications with mimalloc and WasmFS, by @kripken.com:
web.dev/articles/sca.... If you have a multithreaded #Wasm application that does lots of allocations or uses files, then you may benefit greatly by using WasmFS and/or mimalloc.

31.01.2025 16:38 β€” πŸ‘ 8    πŸ” 6    πŸ’¬ 0    πŸ“Œ 1
Post image

Our new paper, Approximate Puzzlepiece Compositing, applies OIT to data-parallel rendering to efficiently render overlapping, jigsaw puzzle-like data distributions, without repartitioning or expensive compositing. It'll presented at Pacific Vis 2025, check it out: www.willusher.io/publications... !

27.01.2025 04:22 β€” πŸ‘ 15    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Post image

My new blog post explains spectral radiometric quantities, photometry and basics of spectral rendering. This is part 2/2 in a series on radiometry. Learn what it means when a light bulb has 800 lumen and how your renderer can account for that.
momentsingraphics.de/Radiometry2P...

19.01.2025 08:29 β€” πŸ‘ 45    πŸ” 10    πŸ’¬ 1    πŸ“Œ 0
Screenshot of a window showing two panes: on the left is a script, and on the right is a fidget spinner

Screenshot of a window showing two panes: on the left is a script, and on the right is a fidget spinner

A wireframe mesh of an architectural cross-section

A wireframe mesh of an architectural cross-section

Marge Simpson, holding a squishy cube-sphere-intersection, with the caption "I just think they're neat!"

Marge Simpson, holding a squishy cube-sphere-intersection, with the caption "I just think they're neat!"

I've just announced my new (blazing-fast) kernel for implicit surfaces: mattkeeter.com/projects/fid...

It's got something for everyone: Cool graphs! Multithreaded WebAssembly! Terrible mesh topology! JIT compilers!

After three years, I'm excited to finally show it off to a wider audience 😎

08.01.2025 15:17 β€” πŸ‘ 194    πŸ” 40    πŸ’¬ 7    πŸ“Œ 2
Post image Post image Post image

Do you want to learn path tracing? Two lectures that I held at TU Delft are on YouTube now! The 2nd is what I had in mind for part 3 of my path tracing workshop. No Shadertoy exercises this time, but an open source Vulkan path tracer πŸ₯³.
www.tudelft.nl/ewi/over-de-...
www.youtube.com/watch?v=Uerw...

19.12.2024 11:47 β€” πŸ‘ 51    πŸ” 12    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

I'm late for ~7 months, but I've finally published my C++ & WebGPU raytracer on GitHub! I've tried to keep the code fairly commented and readable.

It works pretty well, but I've never managed to make refractions work with VNDF. Maybe another time :)

github.com/lisyarus/web...

18.12.2024 13:18 β€” πŸ‘ 140    πŸ” 24    πŸ’¬ 2    πŸ“Œ 0
Screenshot of Slang x WebGPU README on GitHub (where the link in the post points)

Screenshot of Slang x WebGPU README on GitHub (where the link in the post points)

Sharing a starter setup for using @shader-slang.bsky.social with #WebGPU in C++ with #CMake, either for native or web targets. πŸ”Ή Uses the #reflection API to auto-generate boilerplate code! ✨

πŸ‘‰ github.com/eliemichel/S...

Very happy to take feedback about what's good and bad in this demo! More‡️ 1/8

26.11.2024 21:27 β€” πŸ‘ 39    πŸ” 15    πŸ’¬ 2    πŸ“Œ 0
Preview
Khronos Group Launches Slang Initiative, Hosting Open Source Compiler Contributed by NVIDIA The Khronos Group has announced the launch of the new Slangℒ…

Khronos will oversee the open-source Slang shading language and compiler www.khronos.org/news/press/k...
This is big. Slang is cross-platform, backward-compatible, and trivial to port to. It supports differentiation/gradient computation as the first-class citizen, allowing to merge ML and graphics.

21.11.2024 16:19 β€” πŸ‘ 57    πŸ” 17    πŸ’¬ 1    πŸ“Œ 1
Post image

Nice summary of occupancy as a way to hide mem latency, but it is not the only (and sometimes not the best) way. Helping the compiler to add more instructions between the mem read issue and the data use by for eg partially unrolling a loop might help as well (from gpu-primitives-course.github.io)

17.11.2024 12:46 β€” πŸ‘ 81    πŸ” 10    πŸ’¬ 2    πŸ“Œ 1
Shader records in the SBT tool

Shader records in the SBT tool

Sample scene with 2 instances, with 1 bunny geometry each in the SBT tool

Sample scene with 2 instances, with 1 bunny geometry each in the SBT tool

Sample trace ray call in the SBT tool

Sample trace ray call in the SBT tool

I had kept this as my pinned tweet, it's 5yrs old but still relevant today! My post + interactive tool on the RTX shader binding table to explain it across #DXR / #Vulkan / #OptiX www.willusher.io/graphics/201... . The tool can setup an SBT, scene, and call trace ray to see what shaders are called!

16.11.2024 17:06 β€” πŸ‘ 19    πŸ” 1    πŸ’¬ 0    πŸ“Œ 1
Post image

Graphics Programming weekly - Issue 365 - November 10th, 2024 www.jendrikillner.com/post/graphic...

11.11.2024 15:41 β€” πŸ‘ 117    πŸ” 33    πŸ’¬ 2    πŸ“Œ 3
Post image Post image Post image Post image

tiny_bvh has been updated to 0.4.0. Changes:
1. speedtest reports compiler, CPU, lib version.
2. Performance is improving but Embree remains KOTH. :(
3. New: BVH optimizer!
4. New: Better test scene now included. Win64-only; the old one remains the default.
Next up: SBVH! github.com/jbikker/tiny...

09.11.2024 15:42 β€” πŸ‘ 23    πŸ” 4    πŸ’¬ 2    πŸ“Œ 0
Preview
GitHub - TheRealMJP/SHforHLSL: SH for HLSL 2021 SH for HLSL 2021. Contribute to TheRealMJP/SHforHLSL development by creating an account on GitHub.

Here's something I've been working on that's (hopefully) useful for others: a single-header spherical harmonics support library for HLSL 2021

github.com/TheRealMJP/S...

04.11.2024 02:20 β€” πŸ‘ 91    πŸ” 23    πŸ’¬ 2    πŸ“Œ 0
My Ray Tracing Gems Chapters

I put all of my Ray Tracing Gems chapters in one place where you can download them, extracted from books into separate PDFs: boksajak.github.io/blog/RayTrac...
There is:
1. "Ray Traced Shadows"
2. "Reference Path Tracer"
3. "Refraction Ray Cones"
4. "Many Lights With Grid-based Reservoirs"

25.10.2024 09:21 β€” πŸ‘ 63    πŸ” 22    πŸ’¬ 0    πŸ“Œ 0
Post image

Graphics Programming weekly - Issue 362 - October 20th, 2024 www.jendrikillner.com/post/graphic...

26.10.2024 04:44 β€” πŸ‘ 86    πŸ” 29    πŸ’¬ 0    πŸ“Œ 1

Emscripten 3.1.66 is out! πŸš€

github.com/emscripten-c...

Includes correctness fixes for pthreads and support for some newer WebGL extensions, among the usual bugfixes and general improvements.

10.09.2024 18:02 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
WebGPU Speculative Progressive Isosurface Raycaster

Ending traversal early and filling in the image improves overall rendering perf by removing long tail rays, further reduces the amount of data to be processed, and still provides a good image.

Try the demo: ldyken53.github.io/TVCG-progiso... and grab the code: github.com/ldyken53/TVC... !

02.07.2024 04:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Excited to share some excellent recent work with Landon Dyken and Sidharth Kumar: www.willusher.io/publications..., we extend our progressive raycasting pipeline w/ an ML image completion step to stop raycasting early and complete the image with ML! It still runs in the browser using ONNX #WebGPU !

02.07.2024 04:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Will Usher

I wrote about publishing and using a C++ #WebAssembly package on NPM to
write WASM modules that fit into a larger frontend app: www.willusher.io/blog/ship-wa... .
The example code is on Github: github.com/Twinklebear/... and
works with the same VSCode debugging setup I wrote about before!

23.06.2024 03:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Will Usher

I wrote about using CMake, VSCode and wasm-tools to build/ship/debug a #C++ #WebAssembly module that integrates into a larger frontend app: www.willusher.io/blog/build-s... . Set breakpoints, inspect vars, and reconstruct stack traces from prod! Tell me about the cool stuff you're doing with #Wasm!

11.06.2024 19:10 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Oh cool! I missed this when I was looking through your Learn WebGPU site, it looks about the same. I would have just used this instead and handled the Emscripten build w/ an ifdef outside it

30.05.2024 04:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - Twinklebear/sdl2webgpu: A function to easily get a WebGPU context for SDL2 on Web & Native A function to easily get a WebGPU context for SDL2 on Web & Native - Twinklebear/sdl2webgpu

I was inspired by @elie-michel.bsky.social 's glfw3 #webgpu extension: github.com/eliemichel/g... so I wrote the same for #SDL2 : github.com/Twinklebear/... and borrowed their Dawn CMake script to update my WebGPU C++ template repo to easily build for native + web: github.com/Twinklebear/...

25.05.2024 22:54 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@willusher.io is following 20 prominent accounts