nannou
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. Named after this.
A Quick Note
It is still early days and there is a lot of work to be done. Feel free to help out!
The Guide
- Welcome!
- Why Nannou?
- Getting Started
- Tutorials
- Community Tutorials
- Developer Reference
- API Reference
- Showcases
- Changelog
- Contributors
- Code of Conduct
Examples
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.
Libraries
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. |
Tools
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. |