git clone https://github.com/google/dawn dawncmake -B build -DIMGUI_DAWN_DIR=dawncmake --build build The resulting binary will be found at one of the following locations:your_preferred_folderyour_preferred_folder (e.g. typing: cd your_preferred_folder)cmake -B build -DIMGUI_WGPU_DIR=your_preferred_folder (“full path” or “relative” starting from current directory)cmake --build build The resulting binary will be found at one of the following locations:At current date (Jul/2025) there is no official support for SDL3 in EMSCRIPTEN, and its use in EMSCRIPTEN is also in the experimental phase. To use SDL3 with EMSCRIPTEN you need to download the SDL3 repository (source code) and build the libraries for EMSCRIPTEN following the official page: https://wiki.libsdl.org/SDL3/README-emscripten#building-sdlemscripten
your_SDL3_folder/buildemcmake cmake -DIMGUI_SDL3_EMSCRIPTEN_DIR=your_SDL3_folder -G Ninja -B buildcmake --build buildTo run:
emrun build/index.htmlor
python -m http.server then open WGPU browser with url: http://localhost:8000/buildYou need to install Emscripten from https://emscripten.org/docs/getting_started/downloads.html, and have the environment variables set, as described in https://emscripten.org/docs/getting_started/downloads.html#installation-instructions
Depending on your configuration, in Windows you may need to run emsdk/emsdk_env.bat in your console to access the Emscripten command-line tools.
You may also refer to our Continuous Integration setup for Emscripten setup.
Then build using make -f Makefile.emscripten while in the example_glfw_wgpu/ directory.
Requires recent Emscripten as WGPU is still a work-in-progress API.
To run on a local machine:
make serve will use Python3 to spawn a local webserver, you can then browse http://localhost:8000 to access your build.emrun command: emrun web/example_glfw_wgpu.html --browser firefox which will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details.python -m http.server -d web (this is what make serve uses).cd web && python -m SimpleHTTPServer.