{"repo":"RayMarch/shame","free":true,"listed":false,"github":"https://github.com/RayMarch/shame","clone":"git clone https://github.com/RayMarch/shame.git","description":"A fully featured DSL for writing shaders/GPU-pipelines in Rust","language":"Rust","stars":322,"topics":["3d-graphics","code-generation","metaprogramming","rust","rust-lang","shaders","wgpu","sdl3","vulkan","webgpu"],"license":"Apache-2.0","category":"dev-tools","readme_excerpt":"shame Shader metaprogramming in Rust A lightweight [DSL] for writing GPU-pipelines in Rust shame is designed for use in conjunction with the Metal/Vulkan/WebGPU generation of graphics APIs or [wgpu]/[SDL3] style libraries. This is a beta release. Please open an issue if you encounter a problem. [Join our discord] and we will help you get started! shame eliminates the need for a separate shader language and verbose descriptors, without compromising on functionality, by fully embedding all shader/pipeline features into the Rust type system. By bridging the gap between CPU and GPU without leaving the Rust type system, shame empowers you to build concise graphics programs with a refreshing level of type safety. [Metal]: https://developer.apple.com/metal/ [Vulkan]: https://www.vulkan.org [WebGPU]: https://www.w3.org/TR/webgpu/ [SDL3]: https://wiki.libsdl.org/SDL3/CategoryGPU Motivation Modern graphics APIs often require us filling out descriptors, matching up their contents with other descriptors, and restating the same facts in slightly different syntax many times. Doing this should be a compiler's job, but for the Rust compiler to be able to help us here, we first need to teach it how the GPU works. Unfortunately, most of the interesting information about the GPU's work is locked behind the shader language. To unlock it, we need to turn Rust itself into a shader language, but thats not enough. The real plumbing happens at the interface between CPU and GPU, which includes [fixed ","default_branch":null,"files":null,"tree":[],"storefront":"/r/RayMarch","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/RayMarch/shame/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}