r/webgpu

LivePortrait distilled model that can run at 25fps in the browser
▲ 41 r/webgpu+1 crossposts

LivePortrait distilled model that can run at 25fps in the browser

This began as me attempting to run the ONNX version of LivePortrait (https://github.com/KlingAIResearch/LivePortrait) in Chrome with WebGPU. It took 30 seconds to generate a single frame. I investigated a few different options to improve performance, but eventually decided it would be fun to try to distill that model into something much smaller.

Linked is a demo of the first proof-of-concept version of the distilled model. On my 5090, a frame takes less than 30ms to generate and runs 100% in the browser. Quality is just ok and some portraits will work better than others simply because I trained this using a small number of portraits and only trained for a few hours. I’d love to hear how quickly (or not!) frames are rendering for others with different GPUs.

huggingface.co
u/stephen_holograf — 1 day ago
▲ 1 r/webgpu+2 crossposts

What’s the most overrated GPU in AI right now?

Not saying it's a bad GPU, just one that gets recommended way more than it deserves.
Could be because of the price, the hype, or the fact that there are better alternatives for your workload.
Which GPU gets talked up the most, and what would you recommend instead?

reddit.com
u/bucckymeniso — 1 day ago
▲ 6 r/webgpu

Firefox nightly 154 has broken webgpu for android versions under 15

This is sort of a PSA I guess. I have tested the latest release of Firefox nightly on a wide range of android devices and versions. I noticed a regression in webgpu support. On android 15+16 it works as you would expect when you bypass the blocklist in about:config. But on android 8-14 it does absolutely nothing anymore, whether it be an ARM GPU or Qualcomm. I was even able to run webgpu on a galaxy s7 running android 8 till now. But now my galaxy s20 ultra cant even run webgpu with the latest version. Am I the only one who noticed this or is this a more widespread issue that mozilla is aware of? Thanks for reading my ted talk.

reddit.com
u/iphones2g- — 1 day ago
▲ 89 r/webgpu+11 crossposts

Progress on my threejs Voxel engine

I've fully redone the engine for my game AresRPG, I aim for an immersive world! this is a browser based MMORPG on Sui

u/Sceat — 3 days ago
▲ 47 r/webgpu+2 crossposts

nxui now has all 29 Paper Shaders as Vue/Nuxt components (they just went fully open source)

Paper Shaders (the WebGL shader library from paper.design, 1.7M npm downloads/month) dropped their restrictive license this week — it's now plain Apache-2.0, do whatever you like.

I'd been porting them to Vue 3 for nxui, so with the license cleared: all 29 shaders are now available as copy-paste Vue components — mesh gradient, liquid metal, god rays, dithering, metaballs, neuro noise, etc. Typed props, live playgrounds, installable via the shadcn-vue CLI. Works with Nuxt 4 out of the box (SSR-safe mounts).

Demos: https://nxui.geoql.in/docs/paper-shaders/paper-mesh-gradient

Repo (MIT, 210+ components total): https://github.com/vinayakkulkarni/nxui

Feedback welcome — especially on the WebGL/SSR handling.

u/vinayak-kulkarni — 4 days ago
▲ 64 r/webgpu+1 crossposts

You can now use Apple Sharp in the browser using webgpu

I ported Apple’s SHARP model to ONNX and now works in the browser with WebGPU.

No install required, the weights download to your browser and you can start using it immediately

Happy Splatting!

⭐ Demo: https://sharp-onnx-webgpu.vercel.app/

⭐ Code: https://github.com/pristinaai/Sharp-Onnx-webgpu/tree/main

⭐ Weights: https://huggingface.co/sentiantai/sharp-onnx-webgpu-weights/tree/main

u/idealreallabs — 5 days ago
▲ 101 r/webgpu+1 crossposts

Building Charton: A WGPU-Powered General Visualization Library. Just pushed 50k points at 60 FPS on integrated graphics, but hit a WASM bottleneck. Any advice?

Hey Reddit!

I’ve been working on charton, a general-purpose visualization library for the web. In my previous iteration, I got basic interactive sine waves running via the GPU, but the architecture was still hurting from heavy heap allocations. After refactoring the JS/WASM boundary into a stateful, zero-allocation setup, I finally managed to render a 50,000-point Lorenz Attractor dynamically at a locked 60 FPS using WGPU.

Here is a quick look at how the data updates are handled now:

src/lib.rs:

pub async fn update_and_render(&mut self, xs: &[f64], ys: &[f64], colors: &[f64]) -> Result<(), JsValue> {
    self.dataset.update_column_f64("x", xs)?; // In-place memcpy without allocation
    Chart::build(self.dataset.clone())?.mark_point().render_to_canvas(&self.canvas_id).await?
}

index.html:

const app = new LiveChartApp("chart-canvas", TOTAL_POINTS);
// Inside the requestAnimationFrame loop:
await app.update_and_render(xs, ys, colors);

I'm currently stress-testing this on a budget laptop setup: a 13th Gen Intel Core i5-13420H (2.10 GHz) with integrated Intel UHD Graphics (128 MB). My GPU utilization hovers around 70%, but because WASM runs single-threaded here, one CPU core is completely maxed out feeding the render pipeline. Since charton is meant to be a general-purpose visualization library, I can't rely on equation-specific math hacks. Do you have any recommendations for generic data-streaming patterns or memory layouts across the WASM boundary to relieve the CPU?

Moving forward, I'm planning to use this engine to create equation-driven short videos and data art animations. I’d love to hear your thoughts—what kind of interesting use cases, large datasets, or simulation scenarios would you love to see a high-performance library like this tackle next?

u/Deep-Network1590 — 7 days ago
▲ 191 r/webgpu+2 crossposts

Working on a real-time procedural planet generator and a graph-based shader generator (end of video). Both use WebGPU and use compute, vertex and fragment shaders.

u/SaabiMeister — 8 days ago
▲ 593 r/webgpu+1 crossposts

Highly realistic cat rendering on WebGPU

Really pushing the limits of my GPU.

u/0xdeadf1sh — 10 days ago
▲ 25 r/webgpu

WebGPU - Music Reactive Scene

Fan of flight of the navigator but reproducing the ship painful.

u/Far-Employee-9531 — 8 days ago
▲ 14 r/webgpu+1 crossposts

Progress on my webGPU node based editor which enables creators to compose a single graph with multiple shader outputs of any type (compute, vertex & fragment)

youtu.be
u/SaabiMeister — 7 days ago
▲ 81 r/webgpu+1 crossposts

I built a Windows File Manager in Rust. Powered by WGPU, it searches files in 0.1s, starts instantly, and uses half the memory of Windows File Explorer.

Persistent sessions

WASM Extension API

Cloud, SFTP/FTP and SMB

Tags, Fuzzy search and filter

Miller colums

Open ZIPs as folders

u/NeonDeex — 10 days ago
▲ 384 r/webgpu+1 crossposts

WebGL Water upgraded to WebGPU Water 💧

Back in August 2011, Evan Wallace (who later co-founded Figma and wrote esbuild) released WebGL Water - the raytraced pool with real-time caustics that pretty much every web-graphics enthusiast remembers. ~15 years on, I figured it deserved a WebGPU version, so I ported the whole thing.

Live demo (WebGPU, falls back to WebGL2): https://willeastcott.github.io/webgpu-water-playcanvas/

Source: https://github.com/willeastcott/webgpu-water-playcanvas

The 2011 original: https://madebyevan.com/webgl-water/

The bit that's interesting for this sub: rather than transpiling GLSL → WGSL at runtime, every shader is authored in both languages side by side (LLMs are great and managing both versions and keeping them in sync). On WebGPU it runs native WGSL - no transpiler, no WASM - and still falls back to WebGL2 with the original GLSL.

It's a faithful port of the original rendering + sim:

  • GPU heightfield water sim on ping-pong float render targets (RGBA32F, half-float fallback)
  • Real-time caustics via the differential-area method (the projected-mesh trick from Evan's writeup)
  • Raytraced reflection + refraction off the pool and a draggable, buoyant sphere
  • Analytic ambient occlusion, soft blob shadow, sky cubemap
  • Built on the PlayCanvas engine (just the npm package - standalone Vite app)

I also added scroll-to-zoom and made click-drag paint a continuous ripple trail instead of a row of separate drops.

Disclosure: I work on PlayCanvas. This is just a fun open-source port, though - all the original genius is Evan's.

u/MayorOfMonkeys — 11 days ago
▲ 2 r/webgpu+2 crossposts

Zero Dependency Transpiler that translates GLSL/HLSL to WGSL for native WebGPU execution - And it uses User's compute / GPU to operate

I'm working on a project called ShaderBridge. One of my personal projects. And ShaderBridge is a local-first, zero-dependency transpiler that translates GLSL/HLSL source code directly into WGSL for native WebGPU execution. Unlike cloud-based editors, it performs all compilation on the user’s local machine via Rust/WASM and runs strictly on the user's local GPU.

Still WIP and adding more shader, function support

https://reddit.com/link/1ujjcvw/video/re7hj69crdah1/player

And it works!

Anyone interested? 🙂 is this the right place to post this?

reddit.com
u/lucifahsl2 — 7 days ago
▲ 177 r/webgpu+3 crossposts

PlayCanvas Engine 2.20 — WebXR on WebGPU + 3DGS Upgrades + Physics Joints

PlayCanvas is a free, open-source (MIT) real-time 3D engine that runs in the browser on both WebGL2 and WebGPU. We just shipped 2.20 — here's what's new.

Gaussian Splatting (the big one this release):

  • Real-time relighting of splats
  • Soft shadows
  • Depth of field
  • Clipping planes
  • Billions of splats via streaming + LOD
  • Shader effects (dissolve, rings)
  • Gaussian Splatting in VR (with LOD)

WebXR on WebGPU 👇
WebXR (VR/AR) now runs on the WebGPU backend — not just WebGL2. So you can build immersive experiences on the modern graphics API, including the new Gaussian Splatting features in VR. That combo is still pretty rare in the wild — most WebXR today is WebGL-only.

Also new:

  • Procedural sky
  • Clustered light cookies
  • Physics: joints + ragdolls
  • Draco mesh decoding in Node (via worker_threads)

Links:

Quick montage of the new examples attached — happy to answer anything about what we're releasing today!

u/MayorOfMonkeys — 13 days ago
▲ 7 r/webgpu+1 crossposts

Kuma: compiling PyTorch models into self-contained WebGPU executables [P]

I've been experimenting with a compiler/runtime project that I'm not entirely sure is a good idea, so I'd love some feedback from people who've worked on deployment systems.

The idea is to compile an exported PyTorch model into a self-contained package that contains:

  • graph
  • binary weights
  • backend kernels (currently WGSL)
  • runtime metadata

A lightweight runtime loads that package and executes it directly in the browser with WebGPU. No Python, no server inference, and no dependency on a heavyweight runtime.

Right now the attached demos are just neural video representations because they were easy to test, but the motivation is actually operator networks and scientific ML, where I like the idea of distributing a single portable artifact.

The repo is here:
https://github.com/Slater-Victoroff/Kuma

I'm mostly looking for architectural feedback.

Some questions I'm wrestling with:

  • Is embedding backend kernels in the artifact a terrible idea?
  • Is this solving a real deployment problem or just reinventing ONNX Runtime?
  • Are there existing systems I should study that take a similar approach?
  • If you were designing a deployment format today, what would you change?

I'd especially appreciate thoughts from people who've worked on ONNX, IREE, TVM, ExecuTorch, MLIR, or similar compiler/runtime projects.

u/svictoroff — 12 days ago