Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsJul 13, 2026·3 min de lecture

nannou — Creative Coding Framework for Rust

An open-source creative coding framework for Rust that makes it easy to build generative art, audiovisual installations, and interactive simulations with GPU-accelerated graphics.

Prêt pour agents

Installation agent prête

Cet actif peut être installé après choix du runtime, vérification du plan et exécution de la commande adaptée.

Native · 98/100Policy : autoriser
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Single
Confiance
Confiance : Established
Point d'entrée
nannou
Commande d'installation directe
npx -y tokrepo@latest install 5bd64c88-7e73-11f1-9bc6-00163e2b0d79 --target codex

À exécuter après confirmation du plan en dry-run.

Introduction

nannou is an open-source creative coding framework for Rust, inspired by Processing and openFrameworks. It provides a batteries-included environment for artists and designers who want the performance and safety of Rust with a friendly API for 2D/3D graphics, audio, and interaction.

What nannou Does

  • Renders real-time 2D and 3D graphics via wgpu (WebGPU backend)
  • Provides a sketch-style API with model, update, and view lifecycle functions
  • Integrates audio I/O through CPAL for generative sound and music visualization
  • Supports GUI widgets, OSC communication, and laser output for installations
  • Ships examples covering particle systems, noise fields, shaders, and more

Architecture Overview

nannou wraps wgpu for cross-platform GPU rendering, winit for windowing, and CPAL for audio. The framework uses an event-driven application loop where the user defines a model struct holding state, an update function for logic, and a view function for drawing. This design keeps creative sketches concise while giving full access to Rust's ecosystem.

Self-Hosting & Configuration

  • Requires a stable Rust toolchain (1.65+); install via rustup
  • GPU drivers must support Vulkan, Metal, or DX12 for wgpu rendering
  • Add features in Cargo.toml: nannou_audio, nannou_osc, nannou_laser
  • Export frames to PNG sequences for video production with app.main_window().capture_frame()
  • Use nannou_egui crate for adding immediate-mode GUI panels to sketches

Key Features

  • wgpu rendering: modern GPU pipeline without OpenGL legacy
  • Audio-visual integration: synchronized sound and graphics in one framework
  • Hot-reload friendly: fast compile times for iterative creative work
  • Cross-platform: runs on macOS, Linux, and Windows
  • Rich example gallery: 100+ sketches demonstrating techniques

Comparison with Similar Tools

  • Processing — Java-based, larger community but slower runtime performance
  • openFrameworks — C++ toolkit with broader addon ecosystem
  • p5.js — browser-based, easier to share but limited by JS performance
  • Cinder — C++ creative framework, similar scope but no Rust safety guarantees
  • Bevy — Rust game engine with ECS; heavier architecture than nannou's sketch model

FAQ

Q: Do I need to know Rust to use nannou? A: Basic Rust knowledge is needed. The API is designed to be approachable, and the examples serve as learning material.

Q: Can I use nannou for live performances? A: Yes. It supports real-time audio input, OSC for MIDI controllers, and low-latency rendering suitable for live visuals.

Q: How does nannou compare to Bevy for creative coding? A: nannou is sketch-oriented with a simpler API. Bevy is a full game engine with an ECS architecture, better suited for complex interactive applications.

Q: Can I export video from nannou? A: nannou can save individual frames as images. Combine them into video with FFmpeg.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires