[{"data":1,"prerenderedAt":573},["ShallowReactive",2],{"contributor-paths":3,"contributor-carlo-supina":8,"contributor-lorddeathunter":11,"header-guide-sections":14,"all":24,"\u002Fguides\u002Fturning-on-webgpu-in-your-browser":282},[4,6],{"path":5},"\u002Fcontributors\u002Fcarlo-supina",{"path":7},"\u002Fcontributors\u002Florddeathunter",{"name":9,"profileId":10},"Carlo Supina","c7a26131-dae4-4551-b77d-c09b8a6a639e",{"name":12,"profileId":13},"LordDeatHunter",null,[15,18,21],{"to":16,"label":17},"\u002Fguides\u002Fatlas","Atlas",{"to":19,"label":20},"\u002Fguides\u002Fesp8266","ESP8266",{"to":22,"label":23},"\u002Fguides\u002Fesp32","ESP32",[25,37,48,58,72,79,90,100,109,119,129,137,148,157,165,173,182,191,200,210,217,225,233,241,249,259,273],{"id":26,"path":27,"title":28,"description":29,"author":30,"tags":31,"date":35,"contentDisplayUrl":36,"redirectLink":13},"content\u002Fguides\u002Fturning-on-webgpu-in-your-browser.md","\u002Fguides\u002Fturning-on-webgpu-in-your-browser","Turning On WebGPU in Your Browser","Some of the games on this site need WebGPU, a newer way for web pages to use your graphics card. Most browsers have it switched on already. This guide shows which ones do, and how to switch it on in the ones that don't.","carlo-supina",[32,33,34],"webgpu","browser","games","2026-10-11","\u002Fimg\u002Fposts\u002Fwebgpu_guide_thumbnail_w3c.png",{"id":38,"path":39,"title":40,"description":41,"author":30,"tags":42,"date":46,"contentDisplayUrl":47,"redirectLink":13},"content\u002Fblogs\u002Fopen-sauce-2024.md","\u002Fblogs\u002Fopen-sauce-2024","Open Sauce 2024 - Preparing and Showcasing Mini Arcade Machines","A look back into the process of designing and fabricating arcade machines for Open Sauce 2023 and 2024. Learn about what goes into designing custom gaming hardware and presenting at a maker convention.",[43,44,45],"convention","game","arcade","2024-09-09","\u002Fimg\u002Fposts\u002Fopen_sauce_2024\u002Fos_2024_framework.jpg",{"id":49,"path":50,"title":51,"description":52,"author":30,"tags":53,"date":56,"contentDisplayUrl":57,"redirectLink":13},"content\u002Fprojects\u002Fautomating-a-pet-fountain.md","\u002Fprojects\u002Fautomating-a-pet-fountain","Automating a Pet Fountain","This project provides power for a set period of time to a water fountain when a motion sensor is triggered.",[54,55],"MOSFET","PIR-sensor","2022-04-01","\u002Fimg\u002Fposts\u002Fmotion_sensor_switch_thumbnail.png",{"id":59,"path":60,"title":61,"description":62,"author":30,"tags":63,"date":70,"contentDisplayUrl":71,"redirectLink":13},"content\u002Fprojects\u002Fmodding-an-appliance.md","\u002Fprojects\u002Fmodding-an-appliance","Modding an Appliance","This project takes a simple space heater and turns it into an IOT device using ESP8266 (or ESP32) microcontrollers.",[64,65,66,67,68,69],"esp8266","NodeMCU","Thonny","micropython","microcontroller","mod","2021-08-02","\u002Fimg\u002Fposts\u002Fheater_1_thumbnail.png",{"id":73,"path":74,"title":75,"description":76,"author":13,"tags":13,"date":77,"contentDisplayUrl":78,"redirectLink":13},"content\u002Fgames\u002Fthetawave.md","\u002Fgames\u002Fthetawave","Thetawave","Thetawave is a physics-based space shooter with procedurally generated levels, diverse foes, and distinct characters.","2021-07-31","\u002Fimg\u002Fgames\u002Fthetawave_thumbnail.png",{"id":80,"path":81,"title":82,"description":83,"author":30,"tags":84,"date":88,"contentDisplayUrl":89,"redirectLink":13},"content\u002Fguides\u002Ftimers-and-interrupts-with-a-esp32-nodemcu-and-micropython.md","\u002Fguides\u002Ftimers-and-interrupts-with-a-esp32-nodemcu-and-micropython","Timers and Interrupts with an ESP32 NodeMCU and MicroPython","Timers and interrupts simplify and optimize processes by eliminating the need for an infinite loop to check the state of a pin or to execute a delay.",[85,65,66,67,68,86,87],"esp32","timer","interrupt","2021-01-24","\u002Fimg\u002Fposts\u002Fesp32_timers_thumbnail.png",{"id":91,"path":92,"title":93,"description":94,"author":30,"tags":95,"date":98,"contentDisplayUrl":99,"redirectLink":13},"content\u002Fprojects\u002Fgenerating-stl-models-with-python.md","\u002Fprojects\u002Fgenerating-stl-models-with-python","Generating STL Models with Python","How I generated a STL file from a list of coordinates for a 3D print.",[96,97],"python","3d-printer","2020-12-20","\u002Fimg\u002Fposts\u002Fgenerate_stl_thumbnail.png",{"id":101,"path":102,"title":103,"description":104,"author":30,"tags":105,"date":107,"contentDisplayUrl":108,"redirectLink":13},"content\u002Fguides\u002Fgpio-input-and-output-with-an-esp32-nodemcu-and-micropython.md","\u002Fguides\u002Fgpio-input-and-output-with-an-esp32-nodemcu-and-micropython","GPIO Input and Output with an ESP32 NodeMCU and MicroPython","This guide goes over basic input and output using GPIO pins on the ESP32 NodeMCU.",[85,65,66,67,68,106],"gpio","2020-12-02","\u002Fimg\u002Fposts\u002Fesp32_gpio_thumbnail.jpg",{"id":110,"path":111,"title":112,"description":113,"author":30,"tags":114,"date":117,"contentDisplayUrl":118,"redirectLink":13},"content\u002Fblogs\u002Ftinkerdoodle.md","\u002Fblogs\u002Ftinkerdoodle","Tinkerdoodle: A Free IDE for Your IOT Projects","Tinkerdoodle is a free IDE for your IOT projects powered by Jupyter Notebooks.",[67,64,85,115,116],"Jupyter","dht11","2020-11-12","\u002Fimg\u002Fposts\u002Ftinkerdoodle_thumbnail.png",{"id":120,"path":121,"title":122,"description":123,"author":30,"tags":124,"date":127,"contentDisplayUrl":128,"redirectLink":13},"content\u002Fblogs\u002Fhow-to-revive-a-dead-project.md","\u002Fblogs\u002Fhow-to-revive-a-dead-project","How to Revive a Dead Project","My experience bringing my previously dead project, space_shooter_rs, back to life.",[125,126,44],"rust","amethyst","2020-10-03","\u002Fimg\u002Fposts\u002Fdead_project_thumbnail.png",{"id":130,"path":131,"title":132,"description":133,"author":30,"tags":134,"date":135,"contentDisplayUrl":136,"redirectLink":13},"content\u002Fguides\u002Fgetting-started-with-esp32-and-micropython.md","\u002Fguides\u002Fgetting-started-with-esp32-and-micropython","Getting Started with ESP32 and MicroPython","While doing any programming task, it is important to be working in an environment that will your maximize productivity. This guide will take you through setting up an environment for programming an ESP32 with MicroPython using an IDE called Thonny.",[85,67,68,66],"2020-08-27","\u002Fimg\u002Fposts\u002Fesp32_setup_thumbnail.png",{"id":138,"path":139,"title":140,"description":141,"author":30,"tags":142,"date":146,"contentDisplayUrl":147,"redirectLink":13},"content\u002Fguides\u002Fi2c-bus-with-a-nodemcu-and-micropython.md","\u002Fguides\u002Fi2c-bus-with-a-nodemcu-and-micropython","I2C Bus with a NodeMCU and MicroPython","This guide is an intruduction to I2C communication with an ESP8266 NodeMCU and MicroPython. Two I2C peripherals are used in this guide: a MPU6050 IMU, and a 128 by 64 OLED display with a SSD1306 driver.",[64,65,66,67,68,143,144,145],"i2c","mpu6050","ssd1306","2020-07-08","\u002Fimg\u002Fposts\u002Fi2c_thumbnail.jpg",{"id":149,"path":150,"title":151,"description":152,"author":30,"tags":153,"date":155,"contentDisplayUrl":156,"redirectLink":13},"content\u002Fguides\u002Fintroduction-to-api-calls-with-a-nodemcu-and-micropython.md","\u002Fguides\u002Fintroduction-to-api-calls-with-a-nodemcu-and-micropython","Introduction to API Calls with a NodeMCU and MicroPython","This guide is an introduction to making API calls in Python 3 and MicroPython using the requests, urequests, and the OpenWeather API.",[64,65,66,67,68,154],"api","2020-06-04","\u002Fimg\u002Fposts\u002Fapi_call_thumbnail.jpg",{"id":158,"path":159,"title":160,"description":161,"author":30,"tags":162,"date":163,"contentDisplayUrl":164,"redirectLink":13},"content\u002Fguides\u002Fintroduction-to-networking-and-ntptime-with-a-nodemcu-and-micropython.md","\u002Fguides\u002Fintroduction-to-networking-and-ntptime-with-a-nodemcu-and-micropython","Introduction to Networking and ntptime with a NodeMCU and MicroPython","This guide is an introduction to using the networking capabilities of the ESP8266. Specifically, we will go over how to connect the ESP8266 in station mode to wifi and use ntptime to set the RTC to the current time.",[64,65,66,67,68],"2020-03-31","\u002Fimg\u002Fposts\u002Fnetworking_ntptime_thumbnail.jpg",{"id":166,"path":167,"title":168,"description":169,"author":30,"tags":170,"date":171,"contentDisplayUrl":172,"redirectLink":13},"content\u002Fguides\u002Fsetting-up-your-atlas-device.md","\u002Fguides\u002Fsetting-up-your-atlas-device","Setting-Up your Atlas Device","This guide goes over setting up an environment for programming an assembled Atlas device.",[17,65,64,67,68,66],"2020-03-10","\u002Fimg\u002Fposts\u002Fatlas_setup_thumbnail.jpg",{"id":174,"path":175,"title":176,"description":177,"author":30,"tags":178,"date":180,"contentDisplayUrl":181,"redirectLink":13},"content\u002Fguides\u002Fwifi-clock-micropython-class-reference.md","\u002Fguides\u002Fwifi-clock-micropython-class-reference","Wifi Clock Micropython Class Reference","This guide will take you through the basics of programming the Wifi Clock with micropython.",[179,67,64],"wifi-clock","2020-03-05","\u002Fimg\u002Fwifi_clock.jpg",{"id":183,"path":184,"title":185,"description":186,"author":30,"tags":187,"date":189,"contentDisplayUrl":190,"redirectLink":13},"content\u002Fguides\u002Fassembling-your-atlas-kit.md","\u002Fguides\u002Fassembling-your-atlas-kit","Assembling your Atlas Kit","This guide goes over the assembly process of one of our Atlas kits.",[17,65,64,188],"solder","2020-03-04","\u002Fimg\u002Fposts\u002Fatlas_assembly_thumbnail.jpg",{"id":192,"path":193,"title":194,"description":195,"author":30,"tags":196,"date":198,"contentDisplayUrl":199,"redirectLink":13},"content\u002Fguides\u002Frtc-and-deep-sleep-with-a-nodemcu-and-micropython.md","\u002Fguides\u002Frtc-and-deep-sleep-with-a-nodemcu-and-micropython","RTC and Deep Sleep with a NodeMCU and MicroPython","This guide is an introduction to using the RTC (real time clock) and deep sleep mode with ESP8266 NodeMCU.",[64,65,66,67,68,197],"rtc","2020-02-21","\u002Fimg\u002Fposts\u002Frtc_thumbnail.jpg",{"id":201,"path":202,"title":203,"description":204,"author":30,"tags":205,"date":208,"contentDisplayUrl":209,"redirectLink":13},"content\u002Fguides\u002Fpwm-and-adc-with-anodemcu-and-micropython.md","\u002Fguides\u002Fpwm-and-adc-with-anodemcu-and-micropython","PWM and ADC with a NodeMCU and MicroPython","PWM (pulse width modulation) and ADC (analog to digital conversion\u002Fconverter) are both ways in which a digital device, like the ESP8266, can handle analog values.",[64,65,66,67,68,206,207],"pwm","adc","2020-02-17","\u002Fimg\u002Fposts\u002Fpwm_adc_thumbnail.png",{"id":211,"path":212,"title":213,"description":83,"author":30,"tags":214,"date":215,"contentDisplayUrl":216,"redirectLink":13},"content\u002Fguides\u002Ftimers-and-interrupts-with-a-nodemcu-and-micropython.md","\u002Fguides\u002Ftimers-and-interrupts-with-a-nodemcu-and-micropython","Timers and Interrupts with a NodeMCU and MicroPython",[64,65,66,67,68,86,87],"2020-02-06","\u002Fimg\u002Fposts\u002Ftimers_interrupts_thumbnail.png",{"id":218,"path":219,"title":220,"description":221,"author":30,"tags":222,"date":223,"contentDisplayUrl":224,"redirectLink":13},"content\u002Fguides\u002Fbasic-gpio-input-and-output-with-a-nodemcu-and-micropython.md","\u002Fguides\u002Fbasic-gpio-input-and-output-with-a-nodemcu-and-micropython","Basic GPIO Input and Output with a NodeMCU and MicroPython","This guide goes over basic input and output using GPIO pins on the ESP8266 NodeMCU.",[64,65,66,67,68,106],"2020-01-31","\u002Fimg\u002Fposts\u002Fmicropython_basics_1_thumbnail.png",{"id":226,"path":227,"title":228,"description":229,"author":30,"tags":230,"date":231,"contentDisplayUrl":232,"redirectLink":13},"content\u002Fguides\u002Fhow-to-find-your-devices-port.md","\u002Fguides\u002Fhow-to-find-your-devices-port","How to find your Device's Port","Knowing how to find your device's port is essential to programming a microcontroller.",[68],"2020-01-27","\u002Fimg\u002Fposts\u002Ffind_port_thumbnail.png",{"id":234,"path":235,"title":236,"description":237,"author":30,"tags":238,"date":239,"contentDisplayUrl":240,"redirectLink":13},"content\u002Fguides\u002Fhello-micropython.md","\u002Fguides\u002Fhello-micropython","Hello MicroPython","While doing any programming task, it is important to be working in an environment that will your maximize productivity. This guide will take you through setting up an environment for programming an ESP8266 with MicroPython using an IDE called Thonny.",[64,65,66,67,68],"2020-01-21","\u002Fimg\u002Fposts\u002Fhello_esp8266_thumbnail.png",{"id":242,"path":243,"title":244,"description":245,"author":30,"tags":246,"date":247,"contentDisplayUrl":248,"redirectLink":13},"content\u002Fprojects\u002Fspace-shooter-game.md","\u002Fprojects\u002Fspace-shooter-game","Space Shooter Game","A space shooter game made with the Amethyst Engine and Rust.",[125,126,44],"2019-09-02","\u002Fimg\u002Fposts\u002Fspace_shooter_thumbnail.png",{"id":250,"path":251,"title":252,"description":253,"author":30,"tags":254,"date":257,"contentDisplayUrl":258,"redirectLink":13},"content\u002Fblogs\u002Fthotcon-0xa.md","\u002Fblogs\u002Fthotcon-0xa","Thotcon 0xA","Thotcon is an information security convention that takes place yearly in Chicago.",[43,255,256],"badge","infosec","2019-05-05","\u002Fimg\u002Fposts\u002Fthotcon_0xa_thumbnail.png",{"id":260,"path":261,"title":262,"description":263,"author":30,"tags":264,"date":271,"contentDisplayUrl":272,"redirectLink":13},"content\u002Fprojects\u002Finfrared-rover-prototype.md","\u002Fprojects\u002Finfrared-rover-prototype","Infrared Rover Prototype","A radio controlled rover with infrared vision made with Rust and a STM32 microcontroller.",[125,265,266,267,268,269,270],"motors","stm32","amg8833","xbee","l298n","st7735","2019-04-26","\u002Fimg\u002Fposts\u002Finfrared_rover_thumbnail.png",{"id":274,"path":275,"title":276,"description":277,"author":30,"tags":278,"date":280,"contentDisplayUrl":281,"redirectLink":13},"content\u002Fguides\u002Fbreadboards-explained.md","\u002Fguides\u002Fbreadboards-explained","Breadboards Explained","Learn how to use a breadboard.",[279],"breadboard","2019-01-31","\u002Fimg\u002Fbreadboards_thumbnail.png",{"id":26,"title":28,"author":30,"body":283,"buttonText":13,"categories":562,"contentDisplayUrl":36,"contentType":564,"date":35,"description":29,"extension":565,"featured":566,"game":13,"hidden":566,"hideFromSearch":566,"img":13,"links":13,"meta":567,"name":13,"navigation":568,"path":27,"profileId":13,"project_creator":13,"project_page":13,"redirectLink":13,"seo":569,"stem":570,"tags":571,"__hash__":572},{"type":284,"value":285,"toc":558},"minimark",[286,291,295,298,301,304,308,337,339,343,346,349,355,366,369,395,405,408,430,432,436,439,449,452,476,479,481,485,488,491,494,496,500,503,505,509,538,540],[287,288,290],"h1",{"id":289},"what-webgpu-is","What WebGPU Is",[292,293,294],"p",{},"WebGPU is a way for a web page to use your computer's graphics card directly. It is the successor to WebGL, and it is what lets a game built for the desktop run in a browser tab without a plugin or an install.",[292,296,297],{},"It is also new. Browsers have been switching it on one operating system at a time, so whether it works for you depends on which browser you use, which version it is, and what it is running on. If a game on this site told you that your browser does not have WebGPU, this page is for you.",[292,299,300],{},"Everything below was checked against each browser's own documentation on October 11, 2026. This is changing quickly, so if your browser is newer than the versions named here, try the game first.",[302,303],"br",{},[287,305,307],{"id":306},"the-short-version","The Short Version",[309,310,311,319,325,331],"ul",{},[312,313,314,318],"li",{},[315,316,317],"strong",{},"Windows, macOS or ChromeOS:"," use a current Chrome or Edge. Nothing to switch on.",[312,320,321,324],{},[315,322,323],{},"Mac:"," Safari 26 or newer works too (see the Safari section), and so does a current Firefox if your Mac has an Apple Silicon chip.",[312,326,327,330],{},[315,328,329],{},"Linux:"," Chrome works by default on some graphics cards. On others, and in Firefox, you have to switch it on by hand. Both are covered below.",[312,332,333,336],{},[315,334,335],{},"Whatever you use:"," update the browser first. Most of the time that is the whole fix.",[302,338],{},[287,340,342],{"id":341},"chrome-and-edge","Chrome and Edge",[292,344,345],{},"Chrome has had WebGPU switched on since version 113 on Windows, macOS and ChromeOS. Edge is built on the same engine and has had it since the same version.",[292,347,348],{},"On Android it has been on since Chrome 121, on phones running Android 12 or newer with a Qualcomm or ARM graphics chip. (The games here are desktop only for now.)",[292,350,351,354],{},[315,352,353],{},"Linux"," is the newest addition:",[309,356,357,360,363],{},[312,358,359],{},"Chrome 144 switched it on for Intel graphics, 12th generation and newer.",[312,361,362],{},"Chrome 147 added NVIDIA cards with a recent driver, when you are using Wayland.",[312,364,365],{},"On anything else it is still behind a flag.",[292,367,368],{},"To switch it on by hand:",[370,371,372,384,392],"ol",{},[312,373,374,375,379,380,383],{},"Open ",[376,377,378],"code",{},"chrome:\u002F\u002Fflags\u002F#enable-unsafe-webgpu"," and set it to ",[315,381,382],{},"Enabled",".",[312,385,386,387,379,390,383],{},"On Linux, also open ",[376,388,389],{},"chrome:\u002F\u002Fflags\u002F#enable-vulkan",[315,391,382],{},[312,393,394],{},"Restart Chrome.",[292,396,397,398,401,402,383],{},"To check that it worked, open ",[376,399,400],{},"chrome:\u002F\u002Fgpu"," and look for the line ",[315,403,404],{},"WebGPU: Hardware accelerated",[292,406,407],{},"If it still doesn't work:",[309,409,410,420],{},[312,411,374,412,415,416,419],{},[376,413,414],{},"chrome:\u002F\u002Fsettings\u002Fsystem"," and make sure ",[315,417,418],{},"Use graphics acceleration when available"," is on. WebGPU is off whenever that setting is off.",[312,421,422,423,425,426,429],{},"If ",[376,424,400],{}," says \"WebGPU has been disabled via blocklist or the command line\", Chrome has decided not to trust your graphics card or its driver. Updating the driver is the first thing to try. The ",[376,427,428],{},"enable-unsafe-webgpu"," flag from the steps above also gets around that list.",[302,431],{},[287,433,435],{"id":434},"firefox","Firefox",[292,437,438],{},"Firefox switched WebGPU on for Windows in version 141, and for Macs with Apple Silicon in version 147.",[292,440,441,442,444,445,448],{},"As of October 2026, on ",[315,443,353],{}," and on ",[315,446,447],{},"Intel Macs"," it is not on in the regular release yet. It is only on by default in Firefox Nightly.",[292,450,451],{},"To switch it on:",[370,453,454,461,467,473],{},[312,455,456,457,460],{},"Type ",[376,458,459],{},"about:config"," in the address bar, and accept the warning if one is shown.",[312,462,463,464,383],{},"Search for ",[376,465,466],{},"dom.webgpu.enabled",[312,468,469,470,383],{},"Set it to ",[376,471,472],{},"true",[312,474,475],{},"Restart Firefox to be safe.",[292,477,478],{},"This turns on something Mozilla has not finished testing on your system, so it may not run well, or at all. If it doesn't, Chrome is the easier route on Linux.",[302,480],{},[287,482,484],{"id":483},"safari","Safari",[292,486,487],{},"Safari added WebGPU in version 26 (September 2025). It is on by default in Safari 26 on macOS Tahoe 26, iOS 26 and iPadOS 26, so there is nothing to switch on.",[292,489,490],{},"Safari 26 also runs on macOS Sequoia and Sonoma. If WebGPU doesn't work there, update to macOS Tahoe or use Chrome.",[292,492,493],{},"If your Safari is older than 26, update it, or use Chrome.",[302,495],{},[287,497,499],{"id":498},"other-browsers","Other Browsers",[292,501,502],{},"Brave, Opera and Vivaldi are built on the same engine as Chrome, so the Chrome section is the place to start. I could not find a statement from any of them about whether they leave WebGPU switched on, so if a game doesn't start there, try Chrome or Edge.",[302,504],{},[287,506,508],{"id":507},"still-not-working","Still Not Working?",[309,510,511,520,526,532],{},[312,512,513,516,517,519],{},[315,514,515],{},"Check whether your browser has WebGPU."," Firefox and Safari have no page like ",[376,518,400],{},", so the simplest test is a game on this site: if it shows a note saying your browser can't run it instead of a Start button, WebGPU isn't available.",[312,521,522,525],{},[315,523,524],{},"Update your graphics driver."," Chrome refuses WebGPU on graphics cards and drivers it knows to be broken.",[312,527,528,531],{},[315,529,530],{},"Check hardware acceleration."," If it is turned off in your browser's settings, WebGPU is off with it.",[312,533,534,537],{},[315,535,536],{},"Try another browser."," A current Chrome or Edge on Windows or macOS is the combination most likely to work.",[302,539],{},[292,541,542],{},[543,544,545,552,553,383],"em",{},[546,547,551],"a",{"href":548,"rel":549},"https:\u002F\u002Fwww.w3.org\u002F2023\u002F02\u002Fwebgpu-logos.html",[550],"nofollow","WebGPU logo by W3C",", ",[546,554,557],{"href":555,"rel":556},"https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F4.0\u002F",[550],"CC BY 4.0",{"title":559,"searchDepth":560,"depth":560,"links":561},"",2,[],[563],"guide","markdown","md",false,{},true,{"title":28,"description":29},"guides\u002Fturning-on-webgpu-in-your-browser",[32,33,34],"HlyMzUy6O41jjlUm5szBZiu6rcNB42EDe_rdntWN3Os",1792055140706]