WebGPU: hoe websites straks je grafische kaart mogen gebruiken
Stel je voor dat een website een game, een 3D-ontwerpprogramma of zelfs een AI-model wil laten draaien, rechtstreeks in je browser, zonder dat je iets hoeft te installeren. Daarvoor moet die website gebruik kunnen maken van de GPU: de grafische chip in je computer of telefoon die normaal beeld genereert voor games en video's, maar die ook razendsnel duizenden rekensommen tegelijk kan uitvoeren. WebGPU is een nieuwe technische standaard die dat mogelijk maakt: een moderne, snelle en veilige manier voor webpagina's om die grafische chip rechtstreeks aan te spreken.
Vergelijk het met de overstap van een smalle binnenweg naar een brede snelweg. De voorganger, WebGL uit 2011, gaf browsers ook al enige toegang tot de GPU, maar via een verouderde route die was afgeleid van een grafische standaard uit de jaren negentig. WebGPU is juist ontworpen naar het voorbeeld van de moderne, krachtige systemen waarmee ook pc- en consolegames worden gebouwd, zoals Vulkan, Metal en Direct3D 12. Het resultaat: webapplicaties die dichter bij de snelheid van native software komen, of het nu gaat om een tekenprogramma, een spel of een taalmodel dat lokaal op je apparaat draait in plaats van via een server.
Wat is het precies?
WebGPU is een API: een verzameling afspraken en functies waarmee JavaScript-code in een webpagina kan communiceren met de grafische driver van je apparaat. De browser vertaalt die afspraken vervolgens naar de taal die jouw specifieke GPU en besturingssysteem begrijpen.
In de praktijk werkt dat in een aantal stappen. Eerst vraagt een webpagina een adapter op: een verwijzing naar de beschikbare grafische hardware. Daarna wordt een device aangemaakt, een soort werkverbinding waarmee de pagina opdrachten mag versturen. Vervolgens schrijft de ontwikkelaar kleine programma's die op de GPU zelf draaien, shaders genoemd, in een speciaal ontworpen taal: WGSL (WebGPU Shading Language). Die shaders kunnen twee dingen doen: beeld tekenen (een renderpijplijn) of pure berekeningen uitvoeren die niets met beeld te maken hebben (een computepijplijn), bijvoorbeeld voor kunstmatige intelligentie.
Tot slot worden al die opdrachten gebundeld in een commandobuffer en in één keer naar de GPU gestuurd, wat efficiënter is dan losse opdrachten. Dit is allemaal explicieter en gedetailleerder dan bij WebGL, wat ontwikkelaars meer controle en snelheid geeft, maar ook meer code vergt. Daarom gebruiken de meeste webontwikkelaars WebGPU niet rechtstreeks, maar via bibliotheken en game-engines die de complexiteit afschermen.
Wat wil men ermee bereiken?
Het belangrijkste doel is om browsergebaseerde toepassingen dichter bij de prestaties van native, geïnstalleerde software te brengen. Denk aan ontwerpsoftware, videobewerking of games die nu al in de browser draaien, maar die met WebGL tegen grenzen aanliepen omdat die standaard was gebouwd op verouderde aannames over hoe GPU's werken.
Een tweede, minstens zo belangrijke drijfveer is compute: het gebruiken van de GPU voor algemene berekeningen, los van beeldweergave. Dat is precies wat machine learning nodig heeft. Met WebGPU kunnen AI-modellen rechtstreeks in de browser rekenen, op de eigen apparaat van de gebruiker. Dat is niet alleen sneller dan telkens naar een server te moeten, het is ook beter voor privacy: gevoelige gegevens hoeven het apparaat niet te verlaten.
Daarnaast speelt een praktisch probleem: grafische kaartfabrikanten en besturingssystemen zijn zelf overgestapt op moderne API's zoals Vulkan, Metal en Direct3D 12, en lieten oudere standaarden als OpenGL goeddeels los. WebGL, dat op die oudere laag leunde, dreigde daardoor steeds meer tegen vertaalproblemen en prestatieverlies aan te lopen. WebGPU is ontworpen om rechtstreeks op die nieuwe onderliggende systemen aan te sluiten, zonder omwegen.
Voorbeelden uit de praktijk
De techniek is inmiddels verder dan een laboratoriumproject; er zijn concrete toepassingen die WebGPU gebruiken.
- WebLLM, een project van onderzoeksgroep MLC AI dat sinds 2023 grote taalmodellen zoals Llama volledig in de browser laat draaien via WebGPU, zonder dat er gegevens naar een server worden gestuurd.
- De WebGPU-backend van TensorFlow.js, Googles machine-learning-bibliotheek voor JavaScript, die AI-modellen in de browser aanzienlijk sneller laat rekenen dan met oudere technieken.
- De WebGPU-uitvoeringsmodule van ONNX Runtime Web, een project van Microsoft, waarmee kant-en-klare AI-modellen (bijvoorbeeld voor spraakherkenning) in webpagina's kunnen draaien.
- Babylon.js, een populaire open source 3D- en game-engine voor het web, biedt sinds enkele jaren een WebGPU-renderer als alternatief voor de oudere WebGL-renderer, met merkbaar betere prestaties bij complexere scènes.
- Unity, een van de meest gebruikte game-engines ter wereld, voegde vanaf de 2023-releases een experimentele exportoptie toe waarmee ontwikkelaars hun spel via WebGPU in de browser kunnen laten draaien, naast de bestaande WebGL-export.
Hoe ver is de techniek?
WebGPU is geen toekomstplan meer, maar wordt al gebruikt, al is de weg naar volledige, overal gelijke ondersteuning nog niet afgerond. Google Chrome was de eerste grote browser die WebGPU standaard aanzette, in 2023, aanvankelijk op Windows, macOS en ChromeOS; ondersteuning voor Android en Linux volgde daarna in latere Chrome-versies. Apple bracht WebGPU-ondersteuning naar Safari met een grote systeemupdate in 2024, gekoppeld aan nieuwe versies van macOS en iOS. Mozilla's Firefox liep wat langer via experimentele en bèta-kanalen, en heeft ondersteuning geleidelijk naar de stabiele versie gebracht, met Windows doorgaans als eerste platform.
Het resultaat is dat WebGPU eind 2025 in alle grote browsers in enige vorm beschikbaar is, maar dat de exacte startdatum per besturingssysteem kan verschillen, en dat oudere apparaten of minder gangbare combinaties van GPU en driver soms nog haperingen kennen. De onderliggende specificatie wordt beheerd door het World Wide Web Consortium (W3C) en heeft de status van kandidaat-aanbeveling: in de praktijk breed geïmplementeerd en bruikbaar, maar formeel nog niet als definitieve, afgeronde standaard vastgesteld.
Een belangrijk obstakel is veiligheid. Native grafische API's zoals Vulkan of Metal gaan ervan uit dat de software die ze aanroept vertrouwd is; een webpagina van een onbekende afzender is dat per definitie niet. Browsers moeten daarom extra controles inbouwen om te voorkomen dat kwaadwillende code via de GPU toegang krijgt tot gegevens die niet van hen zijn, wat runtime-overhead met zich meebrengt en waar nog altijd beveiligingsonderzoek naar wordt gedaan. Ook ontbreken sommige geavanceerde functies, zoals hardwarematige raytracing (fotorealistische lichtberekening), nog in de huidige standaard en worden apart bediscussieerd als toekomstige uitbreiding.
Wie werken eraan?
WebGPU wordt ontwikkeld binnen de GPU for the Web Community Group van het W3C, een open samenwerkingsverband waarin de grote browserbouwers samen de specificatie opstellen. Google, Apple, Mozilla, Microsoft en chipfabrikant Intel zijn de meest actieve deelnemers.
Elke browserbouwer heeft zijn eigen technische implementatie. Google bouwde Dawn, geschreven in C++, dat in Chrome en andere Chromium-gebaseerde browsers wordt gebruikt. Mozilla ontwikkelde wgpu, geschreven in de programmeertaal Rust, dat in Firefox draait. Interessant is dat wgpu inmiddels ook buiten browsers om wordt gebruikt: onder meer de Rust-game-engine Bevy en de JavaScript-runtime Deno gebruiken het om buiten een webpagina toegang tot de GPU te bieden, wat laat zien dat het ontwerp van WebGPU breder toepasbaar is dan alleen websites.
Ook hardwarefabrikanten als NVIDIA, AMD, Qualcomm en Arm zijn betrokken, vooral om ervoor te zorgen dat hun grafische drivers goed samenwerken met de nieuwe standaard op uiteenlopende besturingssystemen en apparaten.