A WebGPU extension that adds ray tracing capabilities via a pure compute shader implementation, enabling hardware-accelerated rendering in browsers.
WebRTX is a WebGPU extension that adds ray tracing capabilities to web browsers through a pure compute shader implementation. It enables developers to create real-time ray traced graphics in web applications by providing a Vulkan-inspired JavaScript API and supporting GLSL shaders. The project solves the problem of bringing hardware-accelerated ray tracing to the web without requiring native hardware support or custom browser builds.
Graphics developers and web engineers looking to implement real-time ray tracing in browser-based applications, particularly those familiar with Vulkan or WebGPU APIs.
Developers choose WebRTX because it offers a cross-platform, WebGPU-compatible ray tracing solution that works in any supporting browser, avoiding the need for hardware-specific extensions or custom browser builds. Its compute shader implementation ensures broad compatibility while providing a familiar Vulkan-based API.
WebGPU Ray Tracing eXtension
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The JavaScript interface is based on Vulkan's Ray Tracing API, making it familiar for developers already versed in Vulkan, as stated in the introduction.
Implemented entirely with compute shaders, WebRTX works on any browser supporting WebGPU, avoiding hardware dependencies, per the project philosophy.
Direct use of GLSL_EXT_ray_tracing shader stages allows developers to write ray tracing shaders in a familiar language, highlighted in the key features.
Handles acceleration structure traversal and recursive shader invocations internally, simplifying user code by managing complex GPU operations, as explained in 'How it works'.
The specification is explicitly noted as unstable and subject to change, posing risks for code maintenance and long-term projects, from the 'Specification' section.
As a compute shader implementation rather than hardware-accelerated ray tracing, it likely incurs higher overhead and lower performance compared to native solutions.
Requires building with npm, wasm-pack, and depends on external tools like glslang.js and naga, adding complexity to development, as outlined in the 'Development' section.