Gigi WebGPU Demos

Gigi is a rapid research and development platform for real time rendering created by EA SEED. These demos were made in Gigi and code generated to WebGPU. They are also available for download within the Gigi Browser.

WebGPU doesn't currently work in all browsers. For example, it does work in Chrome, but not in firefox at the time of this writing. See browser support status here: https://caniuse.com/webgpu

Camera controls: Left mouse drag to change look direction, WASD to move around.

Gigi Github Repository

Screenshot Technique Render Graph
MNIST

Interactive ML inference of a multi layer perceptron trained on the MNIST data set. Draw a digit and it tries to recognize the number you drew.

This was made to go with the "Machine Learning For Game Developers" material by Alan Wolfe that shows how to do training and inference in plain C++: WebGPU Extensions Used: float32-filterable
Reconstruct Material

Inverse rendering by Martin Mittring. Uses slang for automatic differentiation with compute shaders.

This was part of the Gigi Jam lightning talks, which you can see on YouTube: Gigi Lightning Talks

WebGPU Extensions Used: float32-filterable, maxStorageTexturesPerShaderStage=8
Tiny BVH

Ray tracing using a BVH made with the tinybvh library, and traversal code adapted from the library as well. Switch between the Stanford Bunny and Sponza. Give it 10-30 seconds to download the bvh files

The Gigi Viewer can save vertex data into files in the "BVH_GPU" format which are then usable in WebGPU code generated by Gigi, or other applications. This demo is written to be standalone and easily copied if you want to do "software" raytracing in your own project. WebGPU code generation for ray generation shaders and inline raytracing that uses BVH is more opaque but uses the same mechanisms.

The tinybvh library is by Jacco Bikker and is on github at: tinybvh
CasualPathtracing

A simple path tracer supporting transparency that lets you select different scenes.
NeonDesert

A stylized path tracer.

WebGPU Extensions Used: float32-filterable
BlueNoiseAreaLights

Compares White noise / FAST / IS FAST for raytracing area lights to showcase research we've published. Give it 10-30 seconds to download the noise textures.

Papers:
VerletCar

A playable 2d physics game running on the GPU.
MineSweeper

A playable mine sweeper game running on the GPU.
Life

Interactive conway's game of life running on the GPU.