Web GPU shaders
without the boilerplate

Shadeup is a language (DSL) crafted to make shaders a breeze. Powered by WebGPU, extended from TypeScript, and designed to minimize boilerplate

Easier access to advanced graphics
techniques for beginners

Shadeup provides a low-friction environment for learning, experimenting, and building on the web.

Open-source and documented, Shadeup is the perfect place to start your journey into the world of graphics programming.

Designed from the ground up
for ergonomics

Shadeup is a DSL (domain specific language) that abstracts away the complexities of WebGPU and trades low-level surface area for faster code iteration

Write shaders in the same language

Unlike traditional graphics setups, Shadeup keeps your CPU and GPU code in the same file.
Enjoy shared types, functions and more.

Dance between the

Thanks to the same language model, Shadeup allows you to use functions on both the CPU and GPU sides of your app.

Frictionless uniforms

Never define a uniform again. Shaders act like closures, and can access most CPU-declared variables... Need the mouse position? Just use it, Shadeup will figure out the rest.
And yes, it works with primitives like scalars, vectors, and structs, as well as buffers, textures, and arrays

Advanced techniques

Shadeup's core philosophy is to make complicated algorithms easy to read/learn from. The primary way this is achieved is by stripping away fluff and making sure the remaining lines are clear and impactful.

And much more

Shadeup aims to unlock every aspect of WebGPU, and although it doesn't quite support everything (yet) it does support the following and more

  • Compute Shaders
  • Buffers
  • Render Targets
  • Textures
  • Attachments
  • Instancing
  • Atomics
  • Indirect Drawing
  • Indirect Compute

Ready to get started?

Although Shadeup is still in its early stages, it's already capable of producing some pretty cool things!
The docs are a great place to start learning about the language and its features.