Author of http://curtainsjs.com and https://martinlaxenaire.github.io/gpu-curtains/ - also an @okaydev.co
→ muz.li/picked/2025-...
→ martin-laxenaire.fr
→ muz.li/picked/2025-...
→ martin-laxenaire.fr
It's cleaner plus it allows to easily add/remove meshes (based on a single uniform toggling) to the selective bloom, like on mouseover! 💥
It's cleaner plus it allows to easily add/remove meshes (based on a single uniform toggling) to the selective bloom, like on mouseover! 💥
Here's an example with a selective compute bloom pass. Not sure I've used the most straightforward process (depth handling was tricky), but it's working.
#webgpu #javascript
Here's an example with a selective compute bloom pass. Not sure I've used the most straightforward process (depth handling was tricky), but it's working.
#webgpu #javascript
A tribute to the 80s arcade video games where you'll need to play and interact with the site to unlock all the content and features.
Will you reach the 100% mark?
→ martin-laxenaire.fr
A tribute to the 80s arcade video games where you'll need to play and interact with the site to unlock all the content and features.
Will you reach the 100% mark?
→ martin-laxenaire.fr
Some #gpucurtains examples are still broken (lack of rgba16float texture support, video textures, a few shaders to patch...) but it's a huge step forward!!
martinlaxenaire.github.io/gpu-curtains...
Some #gpucurtains examples are still broken (lack of rgba16float texture support, video textures, a few shaders to patch...) but it's a huge step forward!!
martinlaxenaire.github.io/gpu-curtains...
(I might be cooking something... 😁)
#webgpu #gpucurtains #javascript
(I might be cooking something... 😁)
#webgpu #gpucurtains #javascript
Here's a test scene for you to play with: martinlaxenaire.github.io/gpu-curtains...
Here's a test scene for you to play with: martinlaxenaire.github.io/gpu-curtains...
Turned out I already had everything in place to implement it, just had to figure out a few details to make it work.
Try here → martinlaxenaire.github.io/gpu-curtains...
#webgpu #javascript
Turned out I already had everything in place to implement it, just had to figure out a few details to make it work.
Try here → martinlaxenaire.github.io/gpu-curtains...
#webgpu #javascript
Try here: martinlaxenaire.github.io/gpu-curtains...
Try here: martinlaxenaire.github.io/gpu-curtains...
Decided to create a proper gallery to put everything there:
www.martin-laxenaire.fr/generative/
#creativecoding #generative #javascript
Decided to create a proper gallery to put everything there:
www.martin-laxenaire.fr/generative/
#creativecoding #generative #javascript
8/9
8/9
Almost all the meshes drawn are transparent. This can easily lead to depth related issues, with objects being drawn on top of each other when they shouldn't, especially with particles. At that time I didn't know about OIT, so I came up with my own solution.
5/9
Almost all the meshes drawn are transparent. This can easily lead to depth related issues, with objects being drawn on top of each other when they shouldn't, especially with particles. At that time I didn't know about OIT, so I came up with my own solution.
5/9
The particles and waves representing the sea are both instanced using a tile system. As the camera moves, the tiles move accordingly, allowing to draw only whats currently visible in the camera frustum.
4/9
The particles and waves representing the sea are both instanced using a tile system. As the camera moves, the tiles move accordingly, allowing to draw only whats currently visible in the camera frustum.
4/9
3/9
3/9
The idea is that the user navigates a quiet sea and sails through the history of recreational boating. Hovering markers along the path invites her/him to learn more about said history. The navigation path is randomly generated each time for a unique experience.
2/9
The idea is that the user navigates a quiet sea and sails through the history of recreational boating. Hovering markers along the path invites her/him to learn more about said history. The navigation path is randomly generated each time for a unique experience.
2/9
So many new features since last annoucement: built-in shading including PBR, spot lights, glTF animations and skinning, orthographic camera, stencil support...
→ martinlaxenaire.github.io/gpu-curtains/
→ github.com/martinlaxena...
#webgpu #javascript
So many new features since last annoucement: built-in shading including PBR, spot lights, glTF animations and skinning, orthographic camera, stencil support...
→ martinlaxenaire.github.io/gpu-curtains/
→ github.com/martinlaxena...
#webgpu #javascript
Learn how to use compute shaders to update instances positions, build a shadow map from scratch and more...
→ okaydev.co/articles/div...
#webgpu #javascript
Learn how to use compute shaders to update instances positions, build a shadow map from scratch and more...
→ okaydev.co/articles/div...
#webgpu #javascript
At the moment, here's an example of how I'm generating my fragment shader, but I'm not very fond of using template litterals as I find it kinda messy:
At the moment, here's an example of how I'm generating my fragment shader, but I'm not very fond of using template litterals as I find it kinda messy:
Started with transmission. What a silly idea, it was way more challenging than expected! 😅
But hey, look at that! PBR shading with transmission, dispersion, volume, ior... So cool!
#javascript #webgpu
Started with transmission. What a silly idea, it was way more challenging than expected! 😅
But hey, look at that! PBR shading with transmission, dispersion, volume, ior... So cool!
#javascript #webgpu
- Animations ✅
- Morph targets ✅
- Skinning ✅
- Shadow support ✅
#webgpu #javascript
- Animations ✅
- Morph targets ✅
- Skinning ✅
- Shadow support ✅
#webgpu #javascript
Took me a bit of time but I've successfuly managed to port @toji.dev GPU culling example (see toji.github.io/webgpu-bundl...) using an indirect buffer, a render bundle and a compute shader.
Super happy about this one! 🎉
#webgpu
Took me a bit of time but I've successfuly managed to port @toji.dev GPU culling example (see toji.github.io/webgpu-bundl...) using an indirect buffer, a render bundle and a compute shader.
Super happy about this one! 🎉
#webgpu
New release introduces raycasting, render bundles (can lead to major performances boost), environment maps, advanced renderers switching at runtime...
Website → martinlaxenaire.github.io/gpu-curtains/
Repo → github.com/martinlaxena...
#webgpu #javascript
New release introduces raycasting, render bundles (can lead to major performances boost), environment maps, advanced renderers switching at runtime...
Website → martinlaxenaire.github.io/gpu-curtains/
Repo → github.com/martinlaxena...
#webgpu #javascript
Here, the directional lights are not added to the second renderer scene, only the ambient and point lights are.
#webgpu
Here, the directional lights are not added to the second renderer scene, only the ambient and point lights are.
#webgpu