Awesome WebGPU
Lovely curated list of WebGPU ressources, 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
- Browser support
- Articles
- Tutorials
- Books
- Libraries
- Gists
- Demos
- Videos
- Presentations
- Community
- Bug reporting
- Contribute
- License
Websites
- GPU for the Web Community Group - Official website
- GPUWeb - Official Github repository
- WebGPU - Twitter - Official Twitter account
- Official WebGPU Specifications: Working Draft / Editor's Draft
- Official WGSL (WebGPU Shading Language) Specifications: Working Draft / Editor's Draft
- Official WebGPU Explainer
- API quick reference and documentation - WebGPU.rocks
- 107 WebGPU Projects on GitHub - AwesomeOpenSource.com
- r/WebGPU - Reddit - WebGPU Subreddit
Browser support
- Implementation status - Official W3C Group
- Register for Google Chrome origin trial - Chrome Developers
- WebGPU browser support overview - CanIUse.com
- Chrome Platform Status - Chrome Developers
- WebGPU and WSL in Safari - WebKit
- WebGPU on iOS - Don't work on my iPhone6+
- Servo MVP - WebGPU MVP
Try out WebGPU
- Chromium (Chrome Canary, Edge Canary, ...): Go to
about:flags#enable-unsafe-webgpu
and enable the "Unsafe WebGPU" flag. - Firefox Nightly: Go to
about:config
and setdom.webgpu.enabled
to true. - Safari Technology Preview: Enable the Develop menu by going to
Safari
→Preferences
→Advanced
→Show Develop menu in menu bar
. Then go to theDevelop
menu and enableExperimental Features
→WebGPU
.
Articles
- WebGPU - Wikipedia
- Access modern GPU features with WebGPU - web.dev (by François Beaufort & Corentin Wallez)
- A Taste of WebGPU in Firefox - mozilla.org (by Dzmitry Malyshau)
- Point of WebGPU native - by Dzmitry Malyshau
- Graphics on the web and beyond with WebGPU - medium.com (by Damien Seguin)
- Implementing WebGPU in Gecko - by Dzmitry Malyshau
- From WebGL to WebGPU in Construct - construct.net (by Ashley Gullen)
- A brief history of graphics on the web and WebGPU - construct.net (by Ashley Gullen)
- WebGPU texture best practices - by Brandon Jones
- WebGPU Buffer upload best practices - by Brandon Jones
- wgpu-rs on the web - Rust Graphics Mages
- Compiling Machine Learning to WASM and WebGPU with Apache TVM - tvm.apache.org (by Tianqi Chen & Jared Roesch)
- The WebAssembly App Gap - by Paul Butler
- Next-generation 3D Graphics on the web - webkit.org (by Dean Jackson)
- Efficently rendering glTF models - A WebGPU Case Study - by Brandon Jones
Tutorials
- Raw WebGPU - by Alain Galvan
- Basic WebGPU Rendering - by @ndesmic
- Get started with GPU Compute on the Web - web.dev (by François Beaufort)
- WebGPU for Metal Developers Part 1 (Part 2) - by Warren Moore
- From 0 to glTF with WebGPU: The First Triangle (updated version of this) - by Will Usher
- From 0 to glTF with WebGPU: Bind Groups (updated version of this) - by Will Usher
- Learn Wpgpu: Examples and Showcase Rust & Wgpu - by @sotrh
- LearningWebGPU 教程 (Chinese) - by @hjlld
- Real-Time Ray-Tracing in WebGPU - by Felix Maier
- Build a compute rasterizer in WebGPU - by Omar Shehata
- [Not finished] WebGPU training - by @DrawMindmap
- WebGPU Engine Development (Chinese/English): Development process of WebGPU Engine(C++ and TypeScript)
Books
Libraries
- Babylon.js - Experimental support
- Three.js - Experimental support
- Dawn - Google implementation
- Gfx-rs/wgpu - Mozilla implementation
- Webcore module WebGPU - Webkit / Safari
- bgfx - WebGPU/Dawn experimental
- webgpu-headers - C/C++ headers
- sokol - WebGPU Backend TODO
- WebGPU for Node - Based on Dawn
- RedGPU - By @redcamel
- WebGPU .NET
- Deno roadmap - GPU APIs (WebGPU) to support ML apps
- RedCube - GLTF implementation based on 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 Grpahics Engine
Gists
- 3D SDF Primitives - in WGSL by @munrocket
- 2D SDF Primitives - in WGSL by @munrocket
Demos
Demos might work only on Chrome. Firefox implementation is not complete.
- WebGPU Samples - by Austin Eng (Google) - repository
- WebGPUniverse - by students from Imperial College London
- WebGPU first-person exploration of the Sponza Palace - 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 WGSK Editor - by Takahiro - repository
- Safari WebKit demos
- Three.js WebGPU examples - by Three.js - repository
- Spookyball: a WebGPU-powered, Halloween-themed game - by Brandon Jones - repository
- Babylon.js Playground - by Babylon.js (Note: Select
WebGPU
in the top right corner) - repository - Calculate and render particles with WebGPU - by Daniel Toplak - repository
- An online WebGPU calculator: Using WebGPU on remote browser (via WebRTC) - repository
- WebGPU study - by Redcamel - repository
- Small examples of SPIR-V compatible WebGPU usage - by Tarek Sherif - repository
- WebGPU examples - by wgpu.rs - repository
- Three.js WebGPURenderer - by Takahiro - repository
- WebGPU point cloud - by Markus Schütz - repository
- Forest WebGPU - by Babylon.js
- WebGPU-Playground - by @06wj - repository
- node-webgpu examples - by Felix Maier
- Dawn RT (Ray tracing extension for Dawn/WebGPU) - by Felix Maier
- WebGPU Experiments - by Will Usher - repository
- wgpu-load-test - by Alexis Andre
- WGSL-Toy - by @HypnosNova - repository
- WebGPU Compute 101 Demo - source code
- WebGPU: Rendering, compute, GPU experiments - by Kevin Masson - repository
- WebGPU Sketch Dojo - by Georgi Nikolov - repository
- WebGPU Compute Metaballs - by Georgi Nikolov - repository
- WebGPU 2D Fluid Simulation - by indiana-dev - repository
- WebGPU-Lab - by Sebastian Macke - repository
Videos
- From WebGL to WebGPU: A perspective from Babylon js by David Catuhe
- Next-Generation 3D Graphics on the Web (Google I/O ’19)
- WebGPU (playlist) - by SketchpunkLabs
- WebGPU (playlist) - by Genka
- WebGPU Graphics Programming Step-by-Step (playlist) - by Practical Programming with Dr. Xu
Presentations
- Tint - Proposal for textual shader language by Google
- Building WebGPU with Rust - by Dzmitry Malyshau from Mozilla
Community
- GPU for the web community group - W3C Community
- Public GPU - W3C Mailing list
- Gitter chat - by Mozilla - DEPRECATED
- Matrix WebGPU - Unofficial channel
- YC Point of WebGPU on native - discussion regarding this article
- Possibility of SPIR-V and/or GLSL as a WebGPU extension? - WGSL in debate
Bug reporting
Contribute
Contributions welcome! Read the contribution guidelines first.
License
To the extent possible under law, Mik BRY has waived all copyright and related or neighboring rights to this work.