In the previous chapter we prepared everything needed to start our own Nannou project! In this chapter, we will take a more focused look at all of the different features we can add to our Nannou project.

If you are new to Nannou or Rust we recommend starting with the "Basics" tutorials before going on. If you are feeling more confident, feel free to choose your own adventure through the following tutorials depending on what you want to add to your project!

Rust Basics

Tutorials for learning the basics of Rust with nannou.

Nannou Basics

A suite of tutorials for getting familiar with the Nannou environment.


Working with Nannou's Draw API - a simple approach of coding graphics.


Walk-throughs for creating and working with one or more windows.

  • Building a custom window
  • Creating multiple windows
  • Drawing to different windows
  • Fullscreen on startup
  • Automatically positioning windows


How to create a GUI (Graphical User Interface) for you Nannou project.

NOTE: It might be best to wait for #383 before addressing these.

  • Creating a UI
  • Exploring available UI widgets
  • Multi-window UI


A suite of guides for working with audio in Nannou.

  • Setting up audio output
  • Setting up audio input
  • Selecting specific audio devices
  • Playing an audio file
  • Basic audio synthesis
  • Many channel audio streams
  • Feeding audio input to output
  • Visualising audio


Loading, playing and recording video in Nannou.

  • Drawing video
  • Recording a window to video
  • Manipulating video playback


Understanding the lower level that underlies all graphics in Nannou.

  • What is WGPU?
  • The graphics pipeline
  • Compute shaders
  • Fragment shaders
  • Vertex shaders

Projection Mapping

Getting started with using Nannou for projection mapping.

  • Basic quad-warping.


Detecting and outputting to LASER DACs on a network.

  • Connecting to a LASER.
  • Detecting LASER DACs.
  • Tweaking LASER interpolation and optimisations.



Working with DMX over the network via sACN.

  • Working with the sacn crate.

Serial over USB

Working with Serial data in a cross-platform manner.

  • Reading USB serial data.
  • Writing USB serial data.

If you were unable to find what you were looking for above, or if you have an idea for a tutorial not yet present, please feel free to create an issue or a pull request!