bevy_terminal_display

Crates.iobevy_terminal_display
lib.rsbevy_terminal_display
version
sourcesrc
created_at2024-07-24 16:05:54.547541
updated_at2024-12-20 13:12:29.155919
descriptionA plugin for the Bevy game engine which enables rendering to a terminal using unicode braille characters.
homepage
repositoryhttps://git.exvacuum.dev/bevy_terminal_display
max_upload_size
id1314125
Cargo.toml error:TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Silas Bartha (exvacuum)

documentation

README

bevy_terminal_display

Crates License Tag Docs

A (very experimental) plugin for the Bevy engine which allows for rendering to a terminal window.

WARNING: I highly recommend using the kitty terminal emulator with this, not only due to the gpu-accelerated rendering, but also the implementation of the kitty protocol which enables the advanced input detection.

Features Include:

  • TerminalDisplay automatically sets up a correctly-formatted render texture
  • Post-process dithers colors to pure black and white, which are then printed as braille characters to the terminal
  • Responsiveness to terminal window resizing
  • TerminalInput resource which keeps track of pressed & released keys
  • Widget component for rendering ratatui TUI widgets
  • TerminalWidget trait for creating custom TUI widget components
  • Log redirection

Screenshots

Compatibility

Crate Version Bevy Version
0.6 0.15
0.4 0.14
0.2 0.13

Installation

crates.io

[dependencies]
bevy_terminal_display = "0.5"

Using git URL in Cargo.toml

[dependencies.bevy_terminal_display]
git = "https://git.exvacuum.dev/bevy_terminal_display"

Example Usage

In main.rs:

use bevy::prelude::*;
use bevy_terminal_display;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins.build().disable::<WinitPlugin>().disable::<LogPlugin>,
            ScheduleRunnerPlugin::run_loop(Duration::from_secs_f32(1.0 / 60.0)),
            bevy_terminal_display::TerminalDisplayPlugin::default(),
        ))
        .run();
}

When spawning a camera:

commands.spawn((
    // Camera3d...
    TerminalDisplay(3), // Field is level of dithering
));

License

This crate is licensed under your choice of 0BSD, Apache-2.0, or MIT license.

Commit count: 0

cargo fmt