https://github.com/rerun-io/revy Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} rerun-io / revy Public * Notifications * Fork 2 * Star 128 * Proof-of-concept time-travel debugger for the Bevy game engine, built using Rerun. www.rerun.io/ License Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT 128 stars 2 forks Branches Tags Activity Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Security * Insights rerun-io/revy This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Name Name Last commit message Last commit date Latest commit History 4 Commits src src .gitignore .gitignore Cargo.lock Cargo.lock Cargo.toml Cargo.toml LICENSE-APACHE LICENSE-APACHE LICENSE-MIT LICENSE-MIT README.md README.md bacon.toml bacon.toml rust-toolchain rust-toolchain View all files Repository files navigation * README * Apache-2.0 license * MIT license Revy Latest version Documentation MIT Apache Revy is a proof-of-concept time-travel debugger for the Bevy game engine, built using Rerun. The general idea is that one would use Revy to investigate gameplay/ physics/general-behavior-ish kinds of bugs. Revy is not a graphics debugger: for that you'd use e.g. RenderDoc. It is not a performance profiler either: for that, Bevy integrates well with e.g. Tracy. Revy works by snapshotting diffs of the Bevy database every frame that are then logged into the Rerun database. This allows you to inspect and visualize the state of the engine at any point in time, either in real-time or after the fact. These recordings can then be shared to be replayed or e.g. attached to bug reports. revy.mp4 Examples Breakout 3D shapes Alien Cake Addict Live demo Live demo Live demo [6874747073] [6874747073] [6874747073] --------------------------------------------------------------------- [?][?] This is not an official Rerun project. This is a side-experiment meant to explore the possibilities that a tool like Rerun could open when it comes to gamedev. It is not a full-fledged, properly maintained thing -- nor does it aim to be. It's also probably buggy and slow in many ways, and it certainly is full of code abominations . Usage 1. Install the Rerun Viewer (0.14). 2. Add revy to your dependencies: revy = "0.14" # always matches the rerun version 3. Initialize the rerun plugin: .add_plugins({ let rec = revy::RecordingStreamBuilder::new("").spawn().unwrap(); revy::RerunPlugin { rec } }) This will start a Rerun Viewer in the background and stream the recording data to it. Check out the RecordingStreamBuilder docs for other options (saving to file, connecting to a remote viewer, etc). Custom loggers Revy will record every components of every single entity (), either using one of the builtin dedicated loggers, or using the generic reflection-based logger. You can also register your own custom loggers by inserting a RerunComponentLoggers resource: .insert_resource(revy::RerunComponentLoggers::new([ ( "bevy_render::view::visibility::ViewVisibility".into(), Some(revy::RerunLogger::new( |_world, _all_entities, entity, _component| { let suffix = None; use revy::external::rerun; let data = entity .get::() .map(|vviz| { revy::Aliased::::new( "ViewVisibility", rerun::components::Text( if vviz.get() { ":)))" } else { ":'(" }.into(), ), ) }) .map(|data| Box::new(data) as _); (suffix, data) }, )), ), ])) Compatibility Bevy Revy Rerun 0.13 0.14 0.14 About Proof-of-concept time-travel debugger for the Bevy game engine, built using Rerun. www.rerun.io/ Topics debugger gamedev tools visualizer rerun bevy Resources Readme License Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT Activity Custom properties Stars 128 stars Watchers 3 watching Forks 2 forks Report repository Releases 1 Revy 0.14.0 Latest Mar 1, 2024 Packages 0 No packages published Languages * Rust 100.0% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.