| Crates.io | imagic |
| lib.rs | imagic |
| version | 0.1.0 |
| created_at | 2025-02-05 00:08:25.106071+00 |
| updated_at | 2025-02-05 00:08:25.106071+00 |
| description | A thin rendering framework, implemented by Rust and WGPU |
| homepage | |
| repository | https://github.com/cgdog/imagic |
| max_upload_size | |
| id | 1543147 |
| size | 2,342,402 |
Imagic is a thin rendering framework, implemented by Rust and WGPU.
For the moment, Imagic is at the startup stage, which supports only a few features:
Now only the first camera's clear color is supported. I will fix this problem.
I have plan to make a game with Imagic, maybe physics system is necessary. I'd like to use third party physics crates.
Imagic has two repositories:
In theory, it will be easy to support Android, iOS and Web, thanks to Rust and WGPU. I will complete this some day.
You can watch these videos of these examples on Youtube or Bilibili.
cargo run --example pbr
This example renders five spheres with PBRMaterial with four point lights and IBL. It tries to reproduce the pbr IBL scene from learnopengl.com.

cargo run --example ibl
This example only renders IBL effects without direct lighting. And it supports some UI controls to adjust related PBR parameters.

cargo run --example skybox
This example shows LDR skybox. And the sphere in the scene is affetctd by 4 point lights and IBL baked from the LDR skybox.
Other examples use HDR skybox.

cargo run --example multi_camera
This example use two cameras with different viewports to render a box geometry. The left camera rotates automatically.

cargo run --example mipmaps
This example provides slider to change lod and show mipmaps of CubeTexture. This example also shows how to custom material. It provide a custom skybox material, which exposed lod parameter.
The name 'Imagic' comes from words 'image' and 'magic'. Initially, I intended to implement an image processing library accelerated with GPU. In fact, I previously created a repository named "imagetoy" locally also powered by Rust and WGPU. I believe Rust and WGPU can do more interesting things beyond just image processing, so I create 'imagic' which provides some basic infrastructures to help me and others deal with more complicated and imaginative things.
Usefull links: