RavenRS · Rust GUI

MovieAssistant

Edit and run the MovieAssistant RavenRS example in your browser. Explore its Rust code and download a Cargo project for desktop and WebAssembly.

One declarative Rust interface, GPU rendering, reactive state and semantic design tokens. Free and open source under MIT OR Apache-2.0.

Rust source

fn movie_assistant() -> impl View {
    use ravenrs::core::Primitive;
    use ravenrs::movie::{FilmBuilder, MovieAssistant, MovieLibrary};
    // ravenrs-lint: allow(raw_color) the film is a recording, and its white page is part of the picture
    let mut film = FilmBuilder::new(Size::new(320.0, 200.0), Color::WHITE);
    for second in 0..=9_u64 {
        let square =
            // ravenrs-lint: allow(raw_color) the square is drawn into the film, not into the interface
            Quad::new(Rect::new(20.0 + second as f32 * 25.0, 80.0, 40.0, 40.0), Color::hex(0x4f46e5));
        film.frame(second * 1000, &[Primitive::Quad(square.radius(8.0))]);
    }
    film.chapter("Move a square", "How it goes across the screen.", 0);
    film.chapter("Save your work", "Keep a copy of what you did.", 5000);
    // Accents and case do not matter, and near words count: try "saving".
    film.finish(9000)
        .map(|film| MovieAssistant::new(MovieLibrary::new().film("Manual", film)).width(640.0))
        .ok()
}

The interactive preview loads when JavaScript and WebGPU or WebGL2 are available. You can read the guide and examples here at any time.

More examples