Awesome WebGPU 

Lovely curated list of WebGPU resources, libraries and tools.
WebGPU is a work in progress Web standard from W3C for modern 3D and GPU computing. Its
purpose is to get the best performances on recent GPUs from desktop to
mobile. Unlike WebGL, WebGPU is not a port of an existing native API. It
borrows concepts from Metal, Vulkan and Direct3D12.
Contents
Websites
Official websites
WebGPU Specifications
API documentations
Misc
Browser support
This is an experimental technology - Implementation
status - Official W3C Group. - WebGPU browser support overview -
CanIUse.com WebGPU.
Chrome
Chrome and Blink/Chromium based browsers support WebGPU - Desktop - WebGPU supported by
default on Windows and macOS. - Android -
WebGPU is supported by default. - Edge - WebGPU is supported by
default.
Firefox
WebGPU support is still experimental - Firefox Nightly - Go to
about:config and set dom.webgpu.enabled to
true.
Safari
WebGPU support is still experimental - macOS Safari TP
- WebGPU is enabled by default since 190. - macOS Safari - Soon available.
- iOS
- You can enable WebGPU in Settings → Safari →
Advanced → Feature Flags →
WebGPU.
Articles
Tutorials
- Raw WebGPU - An
overview on how to write a WebGPU application, by Alain Galvan.
- Basic
WebGPU Rendering - Summary of the steps to render a scene, by @ndesmic.
- Get started with GPU Compute
on the Web - Tutorial on how to use WebGPU for non-graphical
applications, by François
Beaufort.
- WebGPU for
Metal Developers Part 1 and Part 2 -
Introduction to WebGPU from Apple’s GPU API, Metal, by Warren Moore.
- From
0 to glTF with WebGPU: Series (repository)
- A tutorial to create a glTF model viewer, by Will Usher.
- Learn wgpu -
Tutorial and examples on wgpu, a Rust implementation of WebGPU, by @sotrh
- LearningWebGPU
教程 (Chinese) - By @hjlld.
- Real-Time
Ray-Tracing in WebGPU - Building a Ray tracer using a modified
version of WebGPU implementation with Vulkan and DX12 ray tracing
extensions, by Felix
Maier.
- Build
a compute rasterizer in WebGPU - How to build a complete rasterizer
using compute shaders, by Omar
Shehata.
- WebGPU Engine
Development (Chinese/English) - Development process of WebGPU Engine
(C++ and TypeScript).
- Learn WebGPU for
native C++ development - A tutorial on WebGPU for Desktop
applications using wgpu or Dawn, by @eliemichel.
Books
Libraries
- Babylon.js -
Open game and rendering engine.
- Three.js - Easy-to-use,
lightweight, general-purpose 3D library.
- Dawn - Google
implementation that powers WebGPU in Chromium, can be used as a
standalone package.
- wgpu - Mozilla
implementation used in Firefox. Like Dawn, can be used as a standalone
package.
- webgpu-headers
- C/C++ headers.
- sokol - Simple
STB-style cross-platform libraries for C and C++.
- RedGPU - JavaScript
WbeGPU library, by @redcamel.
- WebGPU .NET -
.NET bindings, built on top of wgpu.
- Deno - Runtime for JavaScript,
TypeScript, and WebAssembly based on the V8 engine.
- RedCube - glTF
viewer based on a WebGPU backend.
- hwoa-rang-gpu -
Micro WebGPU rendering & compute library.
- wgsl_reflect -
A WebGPU Shading Language parser and reflection library for
JavaScript.
- Arche Graphics
- WebGPU Graphics Engine.
- WebGPU-C++ -
A single-file zero-overhead C++ idiomatic wrapper, by @eliemichel.
- Use.GPU - Reactive/declarative
WebGPU runtime.
- GEngine - A basic
rendering engine based on WebGPU, by junwei.gu.
- Thimbleberry
- Reusuable WebGPU shaders and support functions.
- WebRTX - WebGPU
Ray Tracing Extension.
- SWGPU - A Simple
WebGPU Game Engine.
- React
Native WebGPU - React Native implementation of WebGPU using
Dawn.
- TypeGPU - TypeScript API for
constructing, writing to and reading from GPU buffers with inferred
type-safety.
- WESL
- WGSL extensions for
import, @if, and
more.
- WebGpGpu.ts - A
WebGPU framework to access compute shaders, browser or server-side,
without the steep learning curve.
Debuggers and Profilers
Gists
Demos
Right now, demos work best on Chrome/Edge.
- WebGPU
Samples - A set of samples and demos demonstrating the use of the
WebGPU API - Repository
- WebGPU first-person
exploration of the Sponza Palace - Scene render comparison between
WebGL, WebGL 2.0 and WebGPU, by Brandon Jones - Repository
- WebGPU
Clustered Shading - By Brandon Jones - Repository
- WebGPU
Metaballs - By Brandon Jones - Repository
- WebGPU
External Texture Test - By Brandon Jones - Repository
- Online
WGSL Editor - By Takahiro
- Repository
- Three.js WebGPU
examples - A collection of examples from three.js using the WebGPU
renderer - Repository
- Spookyball - A
Halloween-themed, open source Breakout clone, by Brandon Jones - Repository
- Babylon.js
Playground - By Babylon.js
(Note: Select
WebGPU in the top right corner).
- WebGPU
Particles - Calculate and render particles, by Daniel Toplak - Repository
- An online WebGPU calculator - An
online calculator, but you can only use it on your remote friend’s GPU
(via WebRTC) - Repository
- WebGPU
Examples - A few examples of rendering algorithms implemented in
WebGPU, by Tarek Sherif - Repository
- wgpu examples - Official
list of examples from the wgpu library -
Repository
- Forest
WebGPU - A scene built with Babylon.js.
- WebGPU-Playground -
A playground to experiment with WebGPU, by @06wj - Repository
- Dawn RT
- A fork of dawn with Ray tracing extensions, by Felix Maier.
- wgpu-load-test -
A wgpu stress test, by Alexis
Andre.
- WebGPU Compute 101
Demo - A simple example using compute shaders. source
- WebGPU 2D
Fluid Simulation - An implementation of “Real-Time Fluid Dynamics
for Games” paper, by kishimisu - Repository
- WebGPU-Lab -
Demos and experiments, focused on compute shaders, by Sebastian Macke - Repository
- WebGPU Live Demo Editor -
A collection of WebGPU examples by Hepp Maccoy - Repository
- Thimbleberry Image Transform
Demo - An Image processing app built using Thimbleberry, by mighdoll - Repository
- Shadowray Playground - Demo of
WebRTX, an extension of the WebGPU API with ray tracing capabilities,
implemented with compute shaders, by codedhead.
- Web
Stable Diffusion - An implementation of the image generator AI
model, by CMU, OctoML, Catalyst et al - Repository
- WebLLM - LLM inference engine,
by CMU, University of Washington, OctoML, et al - Repository
- Shader
Graph WGSL - A node based shader editor, by deepkolos - Repository
- WebGPU
Memory Model Testing - Memory models testing suite, by Reese Levine et al., UC Santa
Cruz - Repository
- Marching
Cubes WebGPU - Marching cubes implementation, by Conor O’Malley - Repository
- WebGPU Path
Tracing - A path tracer powered by WebGPU compute shaders, by Fermin Lozano - Repository
Videos
Presentations
Bug reporting
To the extent possible under law, Mik Bry has waived all copyright
and related or neighboring rights to this work.
Contributions welcome! Read the contribution guidelines first.
webgpu.md
Github