Home New Trending Search
About Privacy Terms
#
#WebGPU
Posts tagged #WebGPU on Bluesky
Preview
Why Are We Still Doing GPU Work in JavaScript? (Live WebGPU Benchmark & Demo🚀) JavaScript has been the main language of the web for years. Its popularity probably surprised even...

Why Are We Still Doing GPU Work in JavaScript? (Live WebGPU Benchmark & Demo🚀) JavaScript has been the main language of the web for years. Its popularity probably surprised even its creator,...

#webdev #javascript #typescript #webgpu

Origin | Interest | Match

1 0 0 0
Video thumbnail

My hello-terrain library is finally getting picked up by game devs :)

hello-terrain.kenny.wtf

#threejs #webgpu #r3f

4 0 0 0

Got 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

9 0 0 0
Post image Post image Post image Post image

I built a procedural medieval island map generator using Wave Function Collapse on hex grids. 4,100 cells, 900 possible states per cell, 60fps on mobile. Wrote up the whole process with lessons learned. Links below 👇 #threejs #webgpu

258 58 15 5
Post image

Android's Advanced Protection Mode may soon start disabling WebGPU in chrome to protect against security threats

✅ Details & screenshot - www.androidauthority.com/android-adva...

#Android #Google #WebGPU

3 0 0 0
Table showing the tree-shaken bundle sizes for spark.js with WebGPU and/or WebGL.

Table showing the tree-shaken bundle sizes for spark.js with WebGPU and/or WebGL.

I fixed the shader imports to work with static analysis, so you can estimate bundle sizes for WebGL and WebGPU.

In practice, though, shaders are imported dynamically. You only pay for what you use, so the overall size is tiny.

#webgl #webgpu #sparkjs

1 0 0 0
Post image

Calling all programmers!

Khronos Group is hosting "3D on the Web" -- an evening of talks, demos & networking around #WebGL #WebGPU, #glTF & #Gaussian splats.

March 11 · 5:30-9:30 PM PDT
Easy 12 minute walk from GDC in
San Francisco

Learn more and register: khr.io/1ng
#WebDev #3D #GDC2026

5 1 1 2
Join us for 3D on the Web on March 11 in San Francisco

Join us for 3D on the Web on March 11 in San Francisco

Calling all programmers!

Khronos Group is hosting "3D on the Web" -- an evening of talks, demos & networking around #WebGL #WebGPU, #glTF & #Gaussian splats.

March 11 · 5:30-9:30 PM PDT
Easy 12 minute walk from GDC in
San Francisco

Learn more and register […]

[Original post on fosstodon.org]

5 2 0 1
Preview
Announcing spark.js 0.1 I'm excited to announce spark.js 0.1, now with WebGL support!

I'm excited to announce the release of spark.js 0.1 now with support for WebGL!

www.ludicon.com/castano/blog...

#webgl #webgpu #sparkjs

14 2 0 0
Preview
Announcing spark.js 0.1 I’m excited to announce spark.js 0.1, now with WebGL support! spark.js has been evolving since I released it last summer. Since then, the WebGPU ecosystem has matured considerably. WebGPU is now more stable and widely supported across browsers and platforms. However, users kept telling me the same thing: even though targeting WebGPU is practical today, most teams have codebases that still rely on WebGL, and that made adoption difficult. For that reason I committed to adding WebGL support. This felt like the right moment to bump the version number to 0.1 and signal that spark.js is production ready, not just experimental. That said, I expect the API to continue evolving based on the features developers need and the friction points they encounter. ## WebGL Support Support for WebGL is the main feature of this update. For a long time I believed WebGL could not update the contents of a block compressed texture from the GPU. I thought it lacked support for Pixel Buffer Objects and didn’t support `EXT_copy_image` either, making it impossible to implement Spark without a CPU read-back. Turns out I was wrong, PBO support is there! I’m not entirely sure where that misconception came from. I was possibly confused because PBO support in WebGL is somewhat limited compared to OpenGL. That may have been reinforced by Unity’s documentation, which reports that WebGL does not have texture copy support, making me think that these limitations imposed a more severe constraint. However, in practice, WebGL provides everything needed to implement copies from UINT textures to block-compressed textures. That said, these copies are more expensive compared to WebGPU and native APIs like Vulkan and D3D12. In WebGPU the shader can output to a buffer and then copy its contents to the compressed texture, and in some native APIs the shader can write to the compressed texture directly. The process in WebGL is far more convoluted. Compute shaders with buffer stores and raw image copies aren’t supported, so the codec has to run as a fragment program and output compressed blocks to a render target, then copy the render target to a pixel buffer object, and the PBO to the final compressed texture. Even with this overhead, real-time compression remains practical and fast enough for most applications. ## Cached Temporary Resources Another issue I wanted to address is the driver overhead when compressing many textures. In my initial implementation I created temporary resources for each texture and destroyed them afterward. To reduce this overhead I added support for caching of the temporary resources. This is particularly critical in WebGL where you need to have both, temporary buffers and render targets. In order to use the feature you have to opt-in when creating the spark object, and you can free the resources explicitly when done: // Create spark object with temp resource caching enabled. const spark = await Spark.create(device, { cacheTempResources: true }) // Load and transcode a bunch of textures at once. const textures = await Promise.all( imageUrls.map(url => spark.encodeTexture(url)) ) // Free cached resources. spark.freeTempResources() ## Other Features Another way to reduce overhead is to allocate the output texture once and reuse it across updates. This is useful for textures whose contents change frequently, and can be achieved by passing the output texture as an option: persistentTexture = spark.encodeTexture(renderTarget, { outputTexture: persistentTexture } ) In the future I’d like to extend this option to support other use cases, for example, encoding regions of a larger texture, which would be helping to support virtual texturing applications. The mipmapping improvements I discussed in my previous post have now been merged. One unexpected issue I encountered is that alpha-weighting and the magic kernel did not play well together. The negative lobes of the kernel would sometimes produce zero or near zero alpha values. These would then cause fireflies when un-pre-multiplying. For now I’m using the alpha-weighted box kernel for textures with alpha. In the future, the right solution is probably to apply the sharpening filter after undoing the alpha pre-multiplication. If you’ve tackled this problem before, I’d love to hear how you approached it. Finally, I’ve also started publishing the examples automatically with a github workflow, so you can explore them without having to checkout the repository or install the required development tools: https://ludicon.github.io/spark.js ## WebGL Demo With WebGL support in place, I’ve updated the gltf-demo to support it. WebGL is used automatically when WebGPU is not supported, but you can also choose it explicitly using the `?renderer=webgl` URL argument: https://ludicon.com/sparkjs/gltf-demo/?renderer=webgl ## Integration with 3D Tiles Renderer To really showcase this release, I wanted to take an existing WebGL application and add real-time texture compression, and I thought there was no better stress test than the 3D Tiles Renderer. Integrating spark.js turned out to be extremely straightforward. The `TilesRenderer` uses three.js’s `GLTFLoader`, and spark already provides a plugin that handles image transcoding automatically, so the initial integration required just a couple of lines of code. There was one gotcha: `TilesRenderer` tracks memory used by loaded tiles to decide when to stream in new tiles or unload existing ones, and it does this by assuming textures have an associated image bitmap. That assumption breaks when transcoding textures with Spark, since the resulting textures are `ExternalTexture` objects. To handle this, the Spark GLTF Plugin now stores the byte length in the texture’s `userData` field: const texture = new THREE.ExternalTexture(textureObject.texture) texture.format = textureObject.format texture.userData.byteLength = textureObject.byteLength And the memory footprint calculation handles this special case: if ( tex instanceof ExternalTexture && tex.userData?.byteLength ) { return tex.userData.byteLength; } The results speak for themselves. Texture compression doesn’t just reduce bandwidth and power consumption, it frees up memory for higher-resolution textures with mipmaps (improving aliasing) and increased geometric detail. As they say, a picture is worth a thousand words: Spark OFF Spark ON Spark OFF Spark OFF Spark ON Spark OFF You can check out the full code changes in our fork of the 3DTilesRendererJS repository: https://github.com/NASA-AMMOS/3DTilesRendererJS/pull/1497 ## See You at GDC Finally, if you would like to see spark.js in person or chat about texture compression, I’ll be at GDC next week and I will be presenting at the 3D on the Web Khronos event: https://www.khronos.org/events/3d-on-the-web-2026 Hope to see you there!

I'm excited to announce the release of spark.js 0.1 now with support for WebGL!

www.ludicon.com/castano/blog/2026/03/ann...

0 0 0 0
Post image

Going to GDC next week? If so, join us at 3D on the Web in San Francisco on March 11th! 3D on the Web showcases the latest in WebGL, WebGPU, glTF and 3D Web Graphics. See the agenda and register: www.khronos.org/events/3d-on...
#glTF #3D #graphics #programming #WebGPU #WebGL #glTF

4 2 0 0
Join us at 3D on the Web on March 11 in San Francisco

Join us at 3D on the Web on March 11 in San Francisco

Next week, 3D on the Web is back!

Join industry leaders, developers, and creators on March 11, 2026 in San Francisco for a showcase of the latest in WebGL, WebGPU, glTF, and 3D web graphics. Whether you’re building immersive apps, innovative tools, or next-gen […]

[Original post on fosstodon.org]

2 2 0 1

Happy to report that Lego LDraw models are working

#threejs #raytracing #webgpu #lego

8 0 1 1
Video thumbnail

Tank of Duty has been upgraded! I made a new 3D ThreeJS version last month. Now you can play frantic tank battles in smoother 3D using @WebGPU with help from @ClaudeAI and @antigravity
tanks.tripgeo.com
#WebGPU #ThreeJS #gamedev #indiedev #BrowserGames #Tanks #RetroGaming

5 4 0 0
AstroBurst revolutionizes astronomical image processing with Rust/WebGPU performance, turning FITS d

AstroBurst revolutionizes astronomical image processing with Rust/WebGPU performance, turning FITS d

AstroBurst revolutionizes astronomical image processing with Rust/WebGPU performance, turning FITS data into stunning visuals in milliseconds while using 90% less memory than legacy tools.

https://github.com/samuelkriegerbonini-dev/AstroBurst

#Astrophotography #FITS #WebGPU

1 0 0 0
Original post on akgoze.medium.com

AI in the Browser: WebGPU, WebNN, and Client-Side LLM Applications AI is moving from servers to browsers! Discover how WebAssembly, WebGPU, and Client-Side AI enable cost-free, privacy-first LLMs. ...

#web-development #machine-learning #frontend-development #artificial-intelligence #webgpu […]

1 1 0 0
Video thumbnail

Working on a #WebGPU implementation of the AVBD (Augmented Vertex Block Descent) paper by Giles et al., which had a jaw dropping demo at SIGGRAPH last year. Thousands and thousands of objects interacting in real time.

18 0 0 1
Video thumbnail

The 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

6 1 1 0

Using 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

12 1 1 1
Video thumbnail

Cyber_Imbiber simulated 15,000 pawns fighting at once in an early prototype, now running on a custom C# engine built on WebGPU ♟️

See more: www.reddit.com/r/IndieDev/c...

#indiedev #webgpu #gamedev #simulation

8 2 0 0

Environment 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

17 4 0 1
Post image

WebGPU fundamentals webgpufundamentals.org

#gamedev #gamedevelopment #indiedev #webgpu

6 1 0 0

#WebGPU talks from the Shading Languages Symposium are freshly available. Give them a thumbs up, #WebGPU fans!

WGSL - Past, Present, and Future: youtu.be/wY9NbaGYum8
WESL - a Pioneer Language for WebGPU: youtu.be/TEBh5vMFjJA

4 1 0 0
Post image Post image Post image Post image

Huge thanks to Christiane Paul for commissioning, + our dream team:
Choreography+Mocap: Alexander Whitley
Music+Soundscapes: Paige Emery
WebGPU Consultant and Developer: @holtsetio.bsky.social
Studio Assistant: Milana Aernova
made w #threejs #webgpu
whitney.org/exhibitions/...

0 0 0 0
Spacerift Spacerift is a WIP game by Huw Roberts

Play at play.huwroberts.dev/spacerift/ #threejs #webgpu

0 0 0 0
Preview
Image Generation with a Sphere Encoder We introduce the Sphere Encoder, an efficient generative framework capable of producing images in a single forward pass and competing with many-step diffusion models using fewer than five steps. Our…

the project sphere-encoder.github.io was brought to my attention by Matt DesLauriers, I used Gemini to implement the paper and create a #WebGPU replacement for ONNX.js resulting in a lightweight inference engine.
repo: github.com/nicoptere/sp...
demo: barradeau.com/2026/sphere-...

0 0 0 0
Video thumbnail

I did a rogue version of the "sphere encoder", it's a smart way of embedding images that avoids having too large "gaps" between embeddings. it brings back the 2016 GAN vibe just that it runs at 60FPS in browser with a pure #WebGPU implementation now :) demo & code below

1 0 1 0
Video thumbnail

Most 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

1 0 0 0
Video thumbnail

The #WebGPU global illumination engine is getting somewhere, now with volumetric light shafts (00:58) and fully destructible environments. Sorry about the mouse cursor, that's how you know it's real, AI would _never_.

25 1 0 0
Video thumbnail

A black hole gravitational-lensing renderer running entirely in the browser
vislupus.github.io/ai-generated...
#WebGPU #Claude #AIdev #AI #ClaudeCode #Opus46 #Tech #AICreation #Coding #AIEngineering #CreativeCoding #GPU #JavaScript #vibecoding #claudeai #BlackHole

3 0 0 0