gitwtfhub

wtf is bevy_mod_screenshot_test?

azureblaze/bevy_mod_screenshot_test — explained in plain English

Analysis updated 2026-05-18

1RustAudience · developerComplexity · 3/5Setup · moderate

TL;DR

A Bevy game engine plugin that automates screenshot based visual regression testing.

Mindmap

mindmap
  root((screenshot test))
    What it does
      Visual regression testing
      Screenshot comparison
      Automated Bevy tasks
    Tech stack
      Rust
      Bevy engine
    Use cases
      Catch rendering bugs
      CI visual checks
      Approve intentional changes
    Audience
      Bevy game developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Catch unintended rendering changes in a Bevy game by comparing screenshots across test runs.

REASON 2

Automate a sequence of in-game actions and capture screenshots at specific points for review.

REASON 3

Build a visual regression suite that runs in continuous integration for a Bevy project.

What's in the stack?

RustBevy

How it stacks up

azureblaze/bevy_mod_screenshot_testabc3dz/mixxxabyo-software/ferro-stash
Stars111
LanguageRustRustRust
Setup difficultymoderatemoderatemoderate
Complexity3/52/54/5
Audiencedevelopergeneralops devops

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires disabling the default Rust test harness in Cargo.toml since Bevy apps cannot run under it.

Wtf does this do

bevy_mod_screenshot_test is a testing plugin for Bevy, a game engine written in Rust. It solves a specific problem: catching visual bugs in a game or app that regular automated tests cannot catch, especially bugs related to how things are rendered on screen. Normally, checking rendering by hand is slow and easy to get wrong, so this tool automates it with screenshot comparisons instead. Here is how it works in practice. A developer writes a short sequence of steps for the plugin to run inside the Bevy app, such as placing objects in a 3D scene and deciding exactly when to snap a picture. The plugin then launches the app, walks through those steps in order, and shuts the app down automatically once finished. The very first time a test runs, the plugin saves the screenshots it captured into an expected folder, and the developer looks at these images once to confirm they look correct before committing them to the project. On every run after that, the plugin takes new screenshots and compares them against the saved expected ones. If anything differs, the test fails, which signals that either the code broke something by accident or the visual change was intentional and the saved expected image needs to be updated. Using it requires writing Rust test files with a special configuration, since Bevy applications cannot run under Rust's normal test setup. The README includes a full code example showing how to spawn a scene, wait for shaders and assets to load, pause for a number of frames, take a screenshot, then repeat with a camera rotation change before finally validating the results. This tool is aimed at developers already building games or 3D applications with the Bevy engine who want a reliable way to catch rendering regressions in continuous integration.

Yoink these prompts

Prompt 1
Show me how to set up a test file using bevy_mod_screenshot_test to screenshot a spawned scene.
Prompt 2
Help me write a Bevy test that rotates a camera and takes a screenshot before and after.
Prompt 3
Explain how the expected screenshot directory workflow works for approving visual changes.
Prompt 4
Walk me through configuring Cargo.toml so this crate's tests run without the default harness.

Frequently asked questions

wtf is bevy_mod_screenshot_test?

A Bevy game engine plugin that automates screenshot based visual regression testing.

What language is bevy_mod_screenshot_test written in?

Mainly Rust. The stack also includes Rust, Bevy.

How hard is bevy_mod_screenshot_test to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is bevy_mod_screenshot_test for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.