tl;dr strahl
is a WebGPU Path Tracer for the web.
strahl is a path tracing library for web applications. Path tracing is a technique based on ray tracing to render 3D models to images with realistic reflections and ambient occlusion without the need for pregenerated artifacts. strahl leverages WebGPU for optimal performance and is based on the OpenPBR surface shading model.
- website — documentation, demo, tutorial, and more information
- ACM short paper — summary of the work
- report — master thesis report with full details
- npm package — installable
strahl
package
Feedback, questions, bug reports, and suggestions are welcome and encouraged. Please contact me directly via one of the following channels:
- https://x.com/StuckiSimon
- Mail (see Git commits)
- https://www.linkedin.com/in/stuckisimon/
Instructions for working on the library, website, or report of strahl.
- Node.js, for version see
.nvmrc
. - Browser supporting WebGPU, e.g. Chrome.
The repo is structured as a monorepo of independent packages. It does not leverage npm workspaces
or similar. Each project folder is independent and has dedicated documentation.
The packages are:
strahl-lib
– strahl npm package, the core of the path tracerwebsite
– public website, docs and informationreport
– LaTeX report of the master thesis
npm ci
Note
The workspaces strahl-lib
and website
also require to run npm ci
when first setting them up.
Prettier is used to format files in strahl-lib
and website
.
npm run prettier
To fix formatting, run:
npm run prettier:fix