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.
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.
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_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. |
Links
more like this
L5
L5 is a fun, fast, cross-platform, and lightweight implementation of the Processing API in Lua.
3d-Constructs-Library
A developer library and resource vault for getting pre-compiled 3D particle coordinate distributions to implement inter…