#anti-aliasing #graphics

smaa

A library for post process antialiasing using SMAA

17 breaking releases

0.18.0 Oct 24, 2025
0.17.0 Apr 26, 2025
0.16.0 Jan 27, 2025
0.15.0 Jul 28, 2024
0.2.1 Mar 28, 2021

#136 in Game dev

Download history 639/week @ 2025-08-27 483/week @ 2025-09-03 188/week @ 2025-09-10 654/week @ 2025-09-17 944/week @ 2025-09-24 869/week @ 2025-10-01 1145/week @ 2025-10-08 2002/week @ 2025-10-15 1410/week @ 2025-10-22 907/week @ 2025-10-29 440/week @ 2025-11-05 1695/week @ 2025-11-12 1740/week @ 2025-11-19 1089/week @ 2025-11-26 1315/week @ 2025-12-03 1893/week @ 2025-12-10

6,252 downloads per month
Used in 2 crates

MIT license

1.5MB
17K SLoC

smaa-rs crates.io docs.rs

Post-process antialiasing for wgpu-rs, relying on the SMAA reference implementation.

Example

// Create SMAA target
let mut smaa_target = SmaaTarget::new(
    &device,
    &queue,
    window.inner_size().width,
    window.inner_size().height,
    swapchain_format,
    SmaaMode::Smaa1X,
);

// Main loop
event_loop.run(move |event, event_loop| {
    if let Event::WindowEvent { event, .. } = event {
        match event {
            WindowEvent::RedrawRequested => {
                let output_frame = surface.get_current_texture().unwrap();
                let output_view = output_frame.texture.create_view(&Default::default());
                let smaa_frame = smaa_target.start_frame(&device, &queue, &output_view);

                // Render the scene into `*smaa_frame`.
                // [...]

                smaa_frame.resolve();
                output_frame.present();
            }
            _ => {}
        }
    }
});

Dependencies

~18MB
~341K SLoC