#graphical #interface #user #user-interface #noise #noise-rs

app noise_gui

A graphical user interface for Noise-rs

1 unstable release

new 0.1.0 Mar 8, 2025

#572 in GUI

MIT/Apache

3MB
4.5K SLoC

noise_gui

GitHub crates.io docs.rs GitHub Pages MIT Apache


A graphical user interface for Noise-rs.

[!TIP] noise_gui runs on Linux/Mac/Windows desktops and the web!

Features:

  • Support for all Noise-rs NoiseFn implementations
  • Allow zoom/pan on preview images
  • Allow saving the graph project to a file[^1]
  • Allow noise function export[^1]
  • Automatic NoiseFn cached values
  • Subroutine blocks, comment blocks, node descriptors, etc.
  • WASM support using Trunk

[^1]: Available on desktop only

[!WARNING] noise_gui is currently in the proof-of-concept phase and may contain bugs and missing features.

Development Dependencies

Ubuntu 22.04:

sudo apt install libgtk-3-dev

Browser:

rustup target add wasm32-unknown-unknown
cargo install trunk

How To Run Locally

Desktop:

cargo run

Browser:

trunk serve --open

Noise Function Export

Completed noise graphs may be exported (right-click on any node). The output file is .ron format and may be deserialized for use in your programs.

See noise_expr

Once deserialized into an Expr instance you may replace any decimal or integer values using their name and the Expr::set_f64 and Expr::set_u32 functions. Note that node names do not have to be unique and that all nodes sharing the provided name will be updated. The Expr::noise function may be used to retrieve a Noise-rs NoiseFn implementation.

See the example for more details:

cargo run --example read_file --package noise_expr

Dependencies

~10–50MB
~815K SLoC