David Peipei @davidpei.bsky.social · 13/07/2026Exact same project, no modification. Runs on the web 000
David Peipei @davidpei.bsky.social · 13/07/2026Getting there. Example of a project where the camera movement is in user-land. User scripts in js, running on the web doesn't involve another indirection layer. #rust #webgpu #wasm 100
David Peipei @davidpei.bsky.social · 10/07/2026Almost there. I just need to figure out how to handle shared memory now 000
David Peipei @davidpei.bsky.social · 09/07/2026Trying to solve a fun problem. I am embedding quick-js natively in a rust app. I also have a wasm api to js. My goal: Expose the same api to web js and quickjs. But I also need to handle wasm memory views that are used throughout the API. I would prefer not to use wasi. Any idea? #rust #wasm 100
David Peipei @davidpei.bsky.social · 09/07/2026Amazing work, as always! I wish we could just spend a little more time to get a safer API :D I know I have been been bothering you with that for a while, but right now this is the only hard part to use. I don't mind helping but that would be a breaking change unfortunately :/ 001
David Peipei @davidpei.bsky.social · 02/07/2026The game looks really good! Would love an even more technical post 😁 000
David Peipei @davidpei.bsky.social · 19/06/2026Rendering the amazing "Lone monk" scene by Carlo Bergonzini in Albedo (#rust #webgpu pathtracer). Scene export isn't perfect, speed isn't good enough, but pretty happy with the results already. 100
David Peipei @davidpei.bsky.social · 18/06/2026Safari successfully broken with my latest raytracer build. It went as far as destroying the entire dev tools panel 😅 000
David Peipei @davidpei.bsky.social · 13/06/2026I played the original game on the first xbox when I was still in primary school. It's probably one of the most memorable game I played to date. What you have been doing for the upcoming one is crazy, it looks absolutely incredible. Can't wait to play! 000
David Peipei @davidpei.bsky.social · 10/06/2026Demodulated vs final, renders in real time. So addictive to look at those! 000
David Peipei @davidpei.bsky.social · 06/06/2026Hey! I used it in our engine: wonderlandengine.com The engine editor has a window listing OSS software used, and tinybvh is listed there :)wonderlandengine.comWonderland Engine — Next-Gen 3D Engine for the WebRender complex 3D at native performance, directly in the browser. Product configurators, visualizations, simulations, and interactive 3D — on every device, from a single URL. 020
David Peipei @davidpei.bsky.social · 03/06/2026Really wish wasm-bindgen gen boilerplate code to write a struct from js to read into rust Wasm, without allocating an object or the need to free a pointer. * Give some pointer to temp memory * wasm-bindgen write the js objects (Pod fields) to pointer * Rust has access to the struct via the pointer 000
David Peipei @davidpei.bsky.social · 01/06/2026Looks like Chrome DevTools now include an "AI summaries for console messages". I wish I got natvis / LLDB formatters instead, which seems to be slightly more useful to debug WASM code 😅 000
David Peipei @davidpei.bsky.social · 31/05/2026Your blog posts have been so helpful to a generation of graphics programmer, myself included. Thanks a lot for that! 050
David Peipei @davidpei.bsky.social · 28/05/2026Native vs Firefox Performance hit is clear in the web version. This scene is GPU bound, no CPU work and no CPU -> GPU flow. Weirdly, Chrome is barely usable compared to Firefox. #rustlang #webgpu 120
David Peipei @davidpei.bsky.social · 27/05/2026Rendering at 1/4 resolution to emphasize the fix: Left is bilinear upsampling, right is TAA upsampled. Not great for the reflections, but those will soon be fixed! #webgpu #rust 110
David Peipei @davidpei.bsky.social · 22/05/2026Alright thanks! Unfortunately for me I am located in France. Job sounds awesome tho :) 000
David Peipei @davidpei.bsky.social · 21/05/2026Hey! I guess that remote (Europe) isn’t an option? At least the job listing mentions only hybrid work :) 100
David Peipei @davidpei.bsky.social · 20/05/2026Antialiasing upscaler first attempt. It's too blurry under motion, and some NaNs are showing to mess up with me. Let's see if I can make that sharper 010
David Peipei @davidpei.bsky.social · 06/05/2026Because it's always fun to look at bugs, this is what happens when you mess up your atlas 020
David Peipei @davidpei.bsky.social · 06/05/2026Added a sun based on Hosek Wilkie. Irradiance is pre-computed for the pathtracing NEE. The temporal lag makes changing the time actually kinda nice to look out. Nice artifacts, totally wanted :) #webgpu 130
David Peipei @davidpei.bsky.social · 06/05/2026Welcome to the web :D Now try to upload an HTMLImageElement to a texture array and you will get a monstruous perf hit (on Chrome at least) compared to subImage to staging texture + shader blit. 000
David Peipei @davidpei.bsky.social · 30/04/2026wgpu is truly awesome. I had very few bugs over the years and in general I can just go make a PR, maintainers are super reactive. OpenGL is a great place to start, but considering that WebGPU isn’t much harder, I think it’s a great idea 010
David Peipei @davidpei.bsky.social · 09/04/2026Albedo is getting a UI. The editor data model allows linking scenes, similar to prefabs in Unity I assume. Everything can be linked 010
Reposted by David PeipeiEric Lengyel @ericlengyel.bsky.social · 17/03/2026New blog post: A Decade of Slug This talks about the evolution of the Slug font rendering algorithm, and it includes an exciting announcement: The patent has been dedicated to the public domain. terathon.com/blog/decade-... 1127386
David Peipei @davidpei.bsky.social · 20/02/2026Most of the noise from disocclusion is now gone. Reflections will be a pain to handle, looking forward to it 😁 I waited too long for that, but I really need some mipmaps to get rid of the texture sampling artefact 🫠 #webgpu #rust 010
David Peipei @davidpei.bsky.social · 20/02/2026SVGF / ASVGF are pretty good start. Haven't deeply looked, but I remember that Tomasz Stachowiak did some pretty good job here as well: github.com/EmbarkStudio...github.comGitHub - EmbarkStudios/kajiya: 💡 Experimental real-time global illumination renderer 🦀💡 Experimental real-time global illumination renderer 🦀 - EmbarkStudios/kajiya 031
David Peipei @davidpei.bsky.social · 19/02/2026Pretty common SVGF for now. My noise distribution isn't great here, I will need to re-read all your blue noise material soon :P 120
David Peipei @davidpei.bsky.social · 18/02/2026Got some time to spend on the pathtracer denoiser. It's getting there, and the next step is to fix those disocclusion artefacts. I will start working more and more on this project, and share more info hopefully soon! #rust #webgpu 2121
David Peipei @davidpei.bsky.social · 25/01/2026Just released a new version of github.com/DavidPeicho/... * Removes the "basic" API in favor of the "advanced" API provided by #tinybvh. * Unifies layouts build * Safer usage This version is API-breaking, but the library was still tagged as beta 😄 Will probably hit 0.1.0 soon this time!github.comGitHub - DavidPeicho/tinybvh-rs: Rust wrapper for the tinybvh libaryRust wrapper for the tinybvh libary. Contribute to DavidPeicho/tinybvh-rs development by creating an account on GitHub. 021
David Peipei @davidpei.bsky.social · 23/02/2025Haven't been improving tinybvh-rs much lately, but catching up soon! Unfortunately, compiling a rust crate depending on tinybvh-rs is painful if you don't want to use emscripten. I just decided to not use tinybvh in wasm rust anymore, slowing down my progress on tinybvh-rs. 000
David Peipei @davidpei.bsky.social · 17/02/2025I have hit that working on SVGF. Quite limiting indeed. 011
Reposted by David PeipeiAnatole Duprat @anatoleduprat.bsky.social · 15/02/2025Using ReSTIR to importance sample the brightest pixels on an image www.shadertoy.com/view/XfycWw 18820
David Peipei @davidpei.bsky.social · 26/01/2025First time that I think that rust tooling needs some work: The WebAssembly support with a dependency in C++ is not yet nice to use. Using wasm32-unknown-emscripten also means not using wasm-bindgen 000
David Peipei @davidpei.bsky.social · 25/01/2025I have a #rustlang dependency building a C++ library. Want to compile my project to the wasm32-unknown-unknown target. I feel like I have no choice than making a wasm module out of the C++ dependency itself? 000
David Peipei @davidpei.bsky.social · 18/01/2025Demodulated vs non-demodulated albedo. Need to manually interpolate the texture atlas to get rid of the sampling artefacts tho. 020
David Peipei @davidpei.bsky.social · 18/01/2025Ha my bad! For some reason I assumed it was 1spp denoised, and I was quite amazed by a result like that with an env! Still looks amazing! 000
David Peipei @davidpei.bsky.social · 18/01/2025Looks really nice! How much noise is visible when moving the light? Hard to tell with the compression :) 110
David Peipei @davidpei.bsky.social · 18/01/2025Thanks! Would indeed not have those BVH intersections without tinybvh 😄 110
David Peipei @davidpei.bsky.social · 18/01/2025First post here! Continuing my journey on my #rustlang #webgpu pathracing library, fully GPU software, i.e., no RTX. TLAS + Texture atlas performance are slowing down the pathtracing quite a bit. Will need to focus on that after I get rid of more noise 1201
David Peipei @davidpei.bsky.social · 18/01/2025Really nice! What’s the ray max depth on the above gif? Is it 1ssp? :) 100
Reposted by David PeipeiJacco Bikker 🎦 @jbikker.bsky.social · 16/01/2025TinyBVH has been updated to 1.2.5 on main. New: TLAS/BLAS construction and traversal, for single and double precision BVHs, and including a brand new GPU demo: See the attached real-time footage, captured at 1280x720 on an NVIDIA 2070 laptop GPU. #RTXoff github.com/jbikker/tiny... 3498