RavenRS · Rust GUI

CurveEditor

Edit and run the CurveEditor 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 curve_editor() -> impl View {
    let points = State::new(vec![
        Point::new(0.0, 0.0),
        Point::new(0.3, 0.2),
        Point::new(0.7, 0.85),
        Point::new(1.0, 1.0),
    ]);
    let hill: Vec<f32> = (0..128).map(|i| 50.0 * (-((i as f32 - 60.0) / 30.0).powi(2)).exp()).collect();
    CurveEditor::new(points.binding())
        .height(190.0)
        .histogram([HistogramChannel::new("Light", Color::rgb(0.6, 0.6, 0.6), hill)], HistogramScale::Linear)
        .label("Tone curve")
}

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