Back to rankings

benkuper/Chataigne

C++benjamin.kuperberg.fr/chataigne

Artist-friendly Modular Machine for Art and Technology

artjucetechnologysensorsoscmididmxwiimotetimelineresolumemilluminaudio
Star Growth
Stars
1.6k
Forks
90
Weekly Growth
Issues
74
5001k1.5k
Mar 2017Apr 2020Jun 2023Jul 2026
README

Chataigne

Artist-friendly Modular Machine for Art and Technology Official website : https://benjamin.kuperberg.fr/chataigne

Intro

Chataigne is made with one goal in mind : create a common tool for artists, technicians and developers who wish to use technology and synchronize softwares for shows, interactive installations or prototyping. It aims to be as simple as possible for basic interactions, but can be easily extended to create complex interactions.

What a beautiful screenshot !

Okay, but what does it do exactly ?

While Chataigne won't do much by itself, its purpose is to be the central hub in a project involving multiple interfaces, softwares, devices and sensors. You can see it as a Conductor, which will control all the softwares with the big picture in mind. Chataigne as been designed to fit both linear shows and realtime/interactive project needs.

Seems cool, tell me more !

You can check the tutorials to better understand what and how you can use Chataigne for your projects.

Features

  • Supports communication and synchronization of the following protocols :

    • OSC
    • OSCQuery
    • MIDI
    • DMX (Enttec OpenDMX, Enttec DMXPro, Enttec DMX-MkII, Art-Net, sACN/E1.31)
    • Serial
    • UDP
    • TCP
    • HTTP
    • MQTT
    • WebSockets
    • PJLink
    • Ableton Link
    • PosiStageNet
  • Supports communication and synchronization of the following hardware :

    • KinectV2 (Windows only)
    • StreamDeck
    • Joystick
    • Gamepad
    • Mouse
    • Keyboard
    • Wiimote
    • Joycon
    • Sound card
    • Loupedeck
    • GPIO (Raspberry only)
  • Pre-configured modules for controlling softwares :

    • Resolume
    • Madmapper
    • Millumin
    • TouchDesigner
    • Unity
    • QLab
    • HeavyM
    • D::Light
    • Reaper
    • Ableton Live (through a M4L patch)
    • Powerpoint
    • Watchout
  • Community-powered modules :

    • Leap Motion
    • EOS-OSC
    • OBS
    • X-Touch
    • Novation Launchkey
    • D&B DS100
    • Blackmagic Atem-OSC
    • Flowtoys Vision and Creators
    • Lighttoys FT Props
    • VPT8
    • LightShark
    • Midas M32
    • MPC1005-6
  • State Machine : Create both simple and complex real-time interactions and automations.

  • Time Machine : Create sequence based value and colors animations, trigger events, play audio...

  • Module Router : Easily route multiple values at once from one software to another, independent of the protocol

  • Custom Variables : Store and manipulate values, use presets and interpolate group of values.

  • Dashboard : Create your own UI and controls, customize colors and labels and control it from a web interface

  • Detective : Analyse the evolution of a parameter in time to fully understand what's going on

  • Parrot : Easily record and playback datasets of any parameter animation across the whole software to simulate input and behaviours

  • Outliner : See in one place the whole hierarchy of your session

Using the software

Compiled versions for Windows, Mac OSX and Linux are available at : https://benjamin.kuperberg.fr/chataigne/#download

If beta versions are available, they will show up on this page.

If you wish to test the latest features and commits, the bleeding-edge section is generated at each commit.

Getting Started

You can start by checking the Amazing Chataigne Documentation, made with love ! https://benjamin.kuperberg.fr/chataigne/docs

Also you can watch tutorials from the website and follow the interactive guide from withing the application.

Building the software

Chataigne is built on top of the JUCE frameworks. You can find more infos about it there : https://www.juce.com Chataigne is using a modified version of JUCE. So you first need to compile the Projucer from the modified version of JUCE instead of downloading JUCE :

git clone --branch=develop-local https://github.com/benkuper/JUCE
  • In the JUCE/extras/Projucer/Builds folder, choose the folder depending on you system, open the solution with your IDE and compile it or make in linux. You can then open the new Projucer app that you just built.

  • Clone Chataigne with --recursive options to integrate organicUI and timeline modules

git clone --recursive https://github.com/benkuper/Chataigne
  • Launch the Projucer and open Chataigne.jucer
  • Set your Global Paths (see picture below)
  • Save the jucer
  • Open the solution for you platform in the Builds folder
  • Build the solution from your IDE and compile it or make in linux
  • Check the dependency section below if you have dependency problems when running Chataigne
  • Enjoy !

macOS specific tips

Prerequisites: Xcode (available from the Mac App Store) is required to build on macOS.

The Xcode project expects JUCE to be at ~/JUCE. Since JUCE is already bundled in this repository, the easiest setup is a symlink:

ln -s /path/to/Chataigne/JUCE ~/JUCE

Replace /path/to/Chataigne with the actual path where you cloned this repo.

Once the symlink is in place, open Builds/MacOSX/Chataigne.xcodeproj in Xcode and build, or use the command line:

# For Apple Silicon (arm64)
xcodebuild -project Builds/MacOSX/Chataigne.xcodeproj \
           -scheme "Chataigne - App" \
           -configuration DebugSilicon \
           -destination "platform=macOS" \
           build

# For Intel (x86_64)
xcodebuild -project Builds/MacOSX/Chataigne.xcodeproj \
           -scheme "Chataigne - App" \
           -configuration Debug \
           -destination "platform=macOS" \
           build

The built app will be at Builds/MacOSX/build/<configuration>/Chataigne.app.

Use Release / ReleaseSilicon instead of Debug / DebugSilicon for optimized builds.

Post-build: bundle required dylibs

After building, the pre-built mosquitto and OpenSSL dylibs (already present in External/mosquitto/lib/osx/) must be copied into the app bundle and re-signed, otherwise the app will crash at launch:

APP=Builds/MacOSX/build/DebugSilicon/Chataigne.app   # adjust config as needed
FRAMEWORKS="$APP/Contents/Frameworks"

mkdir -p "$FRAMEWORKS"
cp External/mosquitto/lib/osx/lib{mosquitto,mosquittopp,ssl,crypto}.dylib "$FRAMEWORKS/"
codesign --force --deep --sign - "$APP"

Linux specific tips

You'll need to build this lib to run the app: https://github.com/HBPVIS/servus

You'll need at least these libs to compile the app:

apt-get install build-essential libbluetooth-dev libcurl4-gnutls-dev  libfreetype-dev libfreetype6 libfreetype6-dev libwebkit2gtk-4.0-dev libhidapi-dev

Compile it with the JUCE modules specified:

Chataigne/Builds/LinuxMakefile$ CXXFLAGS="-I../../../JUCE/modules -I" make -j8

To start the built binary:

LD_LIBRARY_PATH=/path/to/Servus/build/lib/:$LD_LIBRARY_PATH ./build/Chataigne

Alternatively put export LD_LIBRARY_PATH=/path/to/Servus/build/lib/:$LD_LIBRARY_PATH into your .bashrc, and open a new terminal to make it work.

Setting JUCE Global Paths

Don't forget to set the paths  !

Dependencies

Windows running instructions

DLL dependencies :

Linux running instructions

  • Before running Chataigne, you just need to do a chmod a+x on the .AppImage file, or right-click on it and allow execution, then you're ready to play !
  • If you're running Arch Linux, you can now just do yay -S chataigne-stable-bin or paru -S chataigne-stable-bin (Thanks Stephan !)
  • If you're running Raspberry Pi 4, you may need to install some more dependencies : sudo apt install libbluetooth-dev libx11-dev

Troubleshooting

If you have any issue regarding the software, you can post an issue on github (preferred for code-related problems and features), there is also the official forum here : https://benjamin.kuperberg.fr/chataigne/forum more suited for questions, wishes and user-level issues.

Chataigne is now on Discord, join and meet the community !

Chataigne on discord

The Badge Zone

Windows 7 x64 / Windows 10 x64 / MacOS / Linux x64 / Raspberry Pi : Build Status

forthebadge forthebadge https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg

Libraries uses, references and other kudos

This list contains all the references to projects and libraries that Chataigne uses, either as an external libraries, or merged with and modified for Chataigne's source code.

Thanks to Manuel Mitasch, Norbert Rostaing, David-Alexandre Chanel, Tom Magnier, Emerick Herve and many more for their contributions and very helpful presence in the community !

Perhaps the most important

I do this on my own free time, feel free to buy me a beer :)

Donate

Donate

Donate with Metamask ! Public key : 0x236F32251cD85745006353f9C61b49519412D5d5

Are you using Chataigne on a regular basis ? Then why not support me accordingly, so I can have a more stable way to work on it !

Choose your angel weapon :

Click click click !

Star History

Star History Chart

Related repositories
GraphiteEditor/Graphite

Community-built comprehensive 2D content creation appplication for graphic design, digital art, and interactive real-time motion graphics powered by a node-based procedural graphics engine

Rustcrates.ioApache License 2.0graphics-editorphoto-editor
graphite.art
26.6k1.2k
processing/p5.js

p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. Looking for p5.js 2.0? http://beta.p5js.org

JavaScriptnpmGNU Lesser General Public License v2.1javascriptgraphics
p5js.org
23.8k3.8k
ellisonleao/magictools

:video_game: :pencil: A list of Game Development resources to make magic happen.

MarkdownMIT Licensegame-developmentgamedev
17k1.2k
terkelg/awesome-creative-coding

Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.

HTMLawesomecreative-coding
15.1k963
fogleman/primitive

Reproducing images with geometric primitives.

GoGo ModulesMIT Licensegographics
primitive.lol
13.2k648
sonic-pi-net/sonic-pi

Code. Music. Live.

C++Otherlivecodingmusic
sonic-pi.net
11.9k980
easydiffusion/easydiffusion

An easy 1-click way to create beautiful artwork on your PC using AI, with no tech knowledge. Provides a browser UI for generating images from text prompts and images. Just enter your text prompt, and see the generated image.

JavaScriptnpmOtherartdiffusion
easydiffusion.github.io
10.4k858
Orama-Interactive/Pixelorama

Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features. Available on Windows, Linux, macOS and the Web!

GDScriptMIT Licensegodot-enginegamedev
pixelorama.org
9.9k526
gelstudios/gitfiti

abusing github commit history for the lulz

PythonPyPIMIT Licensegitfitipython
8.4k1.1k
AbdullahAlfaraj/Auto-Photoshop-StableDiffusion-Plugin

A user-friendly plug-in that makes it easy to generate stable diffusion images inside Photoshop using either Automatic or ComfyUI as a backend.

TypeScriptnpmMIT Licenseaiart
7.3k528
CodingTrain/website-archive

Archive of the Coding Train website (first version)

JavaScriptnpmMIT Licenselearningyoutube
codingtrain.github.io/website-archive/
5.7k5.5k
LingDong-/shan-shui-inf

Procedurally generated Chinese landscape painting.

HTMLMIT Licenseprocedural-generationscrollable
5.6k448