# learn-wgpu An educational book teaching Rust graphics programming with wgpu 29 + winit 0.30. Built for backend/systems Rust developers who know Rust thoroughly but have zero graphics programming experience. Every sentence teaches GPU concepts — not Rust syntax. ## Required Reading Order 1. [The Graphics Pipeline](concepts/graphics-pipeline.md) — GPU vs CPU, the 5-stage pipeline 2. [Coordinate Systems](concepts/coordinate-systems.md) — NDC, homogeneous coordinates, viewport 3. [Shader Basics](concepts/shader-basics.md) — WGSL, vertex/fragment shaders, interpolation 4. [Build a Rainbow Triangle](01-rainbow-triangle.md) — The complete step-by-step guide 5. [Troubleshooting](TROUBLESHOOTING.md) — Common errors and fixes (reference as needed) 6. [Glossary](concepts/GLOSSARY.md) — Every term defined (reference as needed) > **Reading order matters:** Coordinate systems must be understood before shader basics, > because the shader walkthrough references NDC coordinates. ## Guides - **01 — Rainbow Triangle** — The minimal complete program: one triangle, smooth color interpolation - More guides coming soon (textures, lighting, compute) ## Running the Project From the project root: ```bash cargo run ``` This works on all supported platforms. If you encounter build errors, see the **Prerequisites** section above for platform-specific build tool requirements. ## Prerequisites - Rust stable (edition 2024) - A system with a GPU supporting WebGPU-compatible APIs: - **Windows:** Windows 10 or later with a DirectX 12-capable GPU - **macOS:** macOS 10.13+ with a Metal-capable GPU - **Linux:** Vulkan-capable GPU and drivers > **Build tools:** Your platform may require additional build tools: > - **Windows:** Visual Studio Build Tools (2019 or later) > - **macOS:** Xcode Command Line Tools (`xcode-select --install`) > - **Linux:** Vulkan ICD and development packages (e.g., `vulkan-validationlayers` on Ubuntu)