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 laser installation or a 5 minute sketch, this framework aims to give artists easy access to the tools they need.
If you're new to nannou, we recommend checking out the examples to get an idea of how nannou applications are structured and how the API works.
The application context. See here for items related to the event loop, device access, creating and managing windows and streams and more.
The nannou audio API and implementation.
Color items, including everything from rgb, hsb/l/v, lap, alpha, luma and more, provided by the palette crate. See the palette docs for more details or see the named module for a set of provided color constants.
A simple API for drawing 2D and 3D graphics. See the Draw type for more details.
A suite of common interpolation functions often referred to as "easing" and "tweening" functions. This API is provided by the pennereq crate.
Application, event loop and window event definitions and implementations.
Types, functions and other items related to geometry. This module is the source of all graphics and lazer primitives and aids work in 2D and 3D space.
Items related to working with images. Currently, this module simply re-exports the renown image crate which supports reading and writing PNG, JPEG, GIF, WEBP, BMP and more.
An extension of the
A mathematical foundation for nannou including point and vector types and a range of helper/utility functions.
An API for composing Meshs. Meshs may be composed of different sets of channels
including position, color, texture-coordinate and normals. Note that this is quite a low-level
representation. For a higher-level, graphics-related mesh API, see the
A collection of commonly used items that we recommend importing for ease of use.
The User Interface API. Instantiate a Ui via
A nannou application builder.
Object that allows you to build
A Frame represents all graphics for the application for a single "frame" of time.
Identifier for a monitor.
Object that allows you to build windows.
Describes how winit handles the cursor.
Describes the input state of a key.
Describes the appearance of the mouse cursor.
The App's view function.
Symbolic name for a keyboard key.
Describes an event from a
Begin building a nannou App.
A simple function for creating and running a nannou
Build a simple nannou