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>
nannou is built on the Bevy game engine. Its
crates are exposed as a set of Bevy plugins, so nannou's familiar sketch/app
API and Draw interface can be used on their own or dropped into any Bevy
application.
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_draw | The Draw API for 2D and 3D graphics. | |
nannou_isf | An Interactive Shader Format pipeline. | |
nannou_laser | LASER devices, streams and path optimisation. | |
nannou_midi | Simple MIDI input and output. | |
nannou_osc | Simple OSC sender and receiver. | |
nannou_video | Video decoding and playback. | |
nannou_webcam | Cross-platform webcam capture. | |
nannou_wgpu | WGPU helpers and extensions. |