Mepeyew
Computer graphics has gotten to the point where you can't just draw pixels onto the screen directly anymore. Instead, rendering APIs are used for drawing in order to efficiently utilize the hardware. Each platform has its own set of preferred APIs (DirectX on Windows, Metal on MacOS, etc), where said platform has its own little quirks and tricks.
Built in rust, mepeyew is meant to hide away these quirks in a nice and neat package while
trying to give you as much power as possible!
| Hello Triangle | Outlined Cube | PBR Spheres |
|---|---|---|
![]() |
![]() |
![]() |
Platform Support
You can run mepeyew on Windows, MacOS, Linux, and the Web.
Currently, we support Vulkan and WebGpu.
In terms of shading languages, we support Glsl, Spirv, and Wgsl all with the help of naga.
Getting Started
Add this to your Cargo.toml:
mepeyew = "0.2"
This enables mepeyew with the following features:
vulkanwebgpusurface_extensionnaga_translation
If you do not plan on using these features, disabling them will decrease your dependency count.
Examples
Hey, welcome to the world of graphics programming. I'm deeply sorry, but in this strange world, there is no such thing as "basic usage". I'd like to put the classic triangle example code, but that would completely fill your screen. Instead, I'd recommend checking out the examples here on Github.
Using on the Web
Currently, initializing WebGpu requires async which is currently not supported.
Because of this, we use the WebGpuInitFromWindow extension as a workaround.
You can see its use in the examples.
The easiest way to get setup is to create an extra workspace member in your
Cargo.toml.
[workspace]
members = [
"run_wasm"
]
Then, implement run_wasm exactly as shown in this repo.
This is very important as this project depends on my fork of run_wasm and
NOT the original crate.
Road Map
This project is a work in progress! The API is designed to be stable, but I can't guarantee anything of course.
- Basic Uniforms
- Textures
- Shader Attachments
- Documentation
- v0.1 Release!
- WGSL and Naga
- WebGPU
- Depth Buffers
- Stencil Buffers
- MSAA
- More Attachment Formats
- Dynamic Viewport + Scissor
- Dynamic Uniforms
- Shader Storage Buffer Objects
- Compute
- Blending and Culling
- Mipmaps and LOD
- Instancing
- Replace Shader Uniform Frequency
- More Documentation
- (Debug, Clone, Copy, Hash, PartialEq, Eq)-ify Everything
- v0.2 Release!
- Cubemaps


