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
strahlpackage
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