An example implementation of the OpenPBR Surface shading model in a WebGL pathtracer and rasterizer. Includes support for the full OpenPBR v1.2 spec: coat darkening, thin-film iridescence, spectral dispersion, subsurface scattering, fuzz, and more.
Run the live app here.
Install npm, then:
npm install
Development (with hot-reload):
npx vite
Then open http://localhost:5173/OpenPBR-viewer in your browser.
Production build:
npm run build
npm run preview
Then open http://localhost:8080/OpenPBR-viewer in your browser.
This project uses the Standard Shader Ball asset.
- left-click mouse to rotate, right-click mouse to pan camera
- F key to reset camera to Standard Shader Ball default
- AWSD keys to fly
- H key to hide/show the UI
- P key to save a screenshot of the current render
- F11 key to enter/exit fullscreen mode





