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 first tutorial 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!


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


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

  • Drawing 2D shapes
  • Drawing 3D shapes
  • Drawing images
  • Drawing meshes


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.

  • 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 Vulkan?
  • 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.


  • Setting up an OSC sender.
  • Setting up an OSC receiver.


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!