README.md
An open-source creative-coding toolkit for Rust.
nannou is a collection of code aimed at making it easy for artists to express themselves with simple, fast, reliable, portable code. Whether working on a 12-month installation or a 5 minute sketch, this framework aims to give artists easy access to the tools they need.
The project was started out of a desire for a creative coding framework inspired by Processing, OpenFrameworks and Cinder, but for Rust. <sup>Named after this.</sup>
It is still early days and there is a lot of work to be done. Feel free to help out!
The following collection of examples are a great way to get familiar with nannou.
| Directory | Description |
|---|---|
examples/ | A collection of examples demonstrating how to use nannou! |
generative_design/ | Examples from Generative Gestaltung, ported from p5.js to nannou. |
nature_of_code/ | Examples from Nature of Code, ported from Processing to nannou. |
If you spot an example that interests you, you may run it with the following:
cargo run --release --example <example_name>
where <example_name> is the example's file name without the .rs. Note that
the first run might take a while in order to build nannou first, but consecutive
runs should be much quicker.
The following nannou libraries are included within this repository.
| Library | Links | Description |
|---|---|---|
nannou | App, sketching, graphics, windowing and UI. | |
nannou_audio | Audio hosts, devices and streams. | |
nannou_core | Just-the-core for headless, embedded and libraries. | |
nannou_egui | For creating egui UIs in nannou apps. | |
nannou_isf | An Interactive Shader Format pipeline. | |
nannou_laser | LASER devices, streams and path optimisation. | |
nannou_mesh | API for composing meshes from channels. | |
nannou_osc | Simple OSC sender and receiver. | |
nannou_wgpu | WGPU helpers and extensions. |
A couple of tools are also included, though there some issues we would like to address before we can recommend using them just yet!
| Tool | Links | Description |
|---|---|---|
nannou_new | A nannou project generator. | |
nannou_package | For packaging nannou apps for distribution. |