WESL: A Portable and Modular Superset of WGSL
Welcome to the user-friendly documentation page for WESL! 👋
This documentation is aimed at those who want to learn how to use WESL. The technical specification is available on the main repo.
What is WESL?
WESL is:
- A superset of WGSL, the WebGPU Shading Language, that allows developers to compose shader modules with features like imports, generics, and conditional compilation.
- A compiler that converts WESL files into valid WGSL code for use with WebGPU.
- A suite of convenience tools, including a Language Server and a Syntax Highlighter. (Coming soon)
Who is it for?
WESL is designed for anyone writing shaders in WGSL. It is language- and framework-agnostic, with implementations available for Rust and TypeScript. It is designed to inter-operate with frameworks such as Bevy, Use.GPU, TypeGPU.
How to use it?
Check out the Getting Started page for installation instructions and an introduction to the language extensions. (Coming soon)
Visit the Code Examples for demos of WESL usage. (Coming soon)
Try WESL online in the WESL Playground
For a more detailed explanation of the various extensions, visit the Reference page. (Coming soon)
Questions, Remarks, Complaints
WESL is still in the early stages of specification and development, so expect frequent updates. We welcome any feedback! The best way to reach us is by opening a GitHub Issue.
You can also join our Discord Server to get involved or stay up to date with WESL’s development. We are always open to new contributors.