Chataigne: An Open-Source Swiss Army Knife

[Ben Kuper] is a developer with a history of working on art installations, and had hit upon a common problem often cited by artists. When creating installations involving light, sound, and motion, they often spend too much time on the nuts and bolts of electronics, programming, and so on. Such matters are a huge time sink with a steep learning curve and oftentimes just a plain distraction from the actual artistic intent they’re trying to focus upon. [Ben] has been working for a few years on a software tool, Chataigne which is designed as the glue between various software tools and hardware interfaces, enabling complex control of the application using simple building blocks.

The tool aims to act as a central controller, kind of like the conductor of an orchestra, pulling in and conditioning inputs from sensors, running state machines, and sending the results back out to whatever the installation needs, be they lighting controllers via DMX, or moving stepper motors around with an attached Arduino, the tool seems to be flexible enough to control many of the things one would typically find in an art installation. The user base is already in the multiple thousands, with a community of third-party developers adding more functionality as per their own particular needs.

The project looks polished and easy to use, but it seems that the vast majority of the tutorial videos are in French (like this example controlling LEDs from a MIDI controller as an input), so that might slow down adoption a little for those of us with little more than high school French, some thirty years in the past. That said, the documentation looks good, so most interested parties should be able to figure out how to drive it.

Art and hacking go hand in hand, due to the nature of one-off installations, and the frugality of your average artist. We’ve seen a few fun hacks, like this neat optomechanical sequencer. But can the hacks themselves be creative?

Update: [Ben] points out that there is a English language tutorial video that covers most topics.

47 thoughts on “Chataigne: An Open-Source Swiss Army Knife

    1. I have the impression that this is about the next level up from a sketch for a single arduino – coordinating the input and output for a spider-web of microcontrollers – plus, adding in a graphical interface to interface between user and the assorted sub-systems.

      I might give it a look for my own use.

  1. A friend of mine made an Art Installation as her Thesis, it took her a few months to learn Arduino, Processor and such to make the interactive part of it. So i think this kind of tools that closes the gap between the artists and the realization of their artworks are awesome.
    It seems quite simple to learn, I’ll give it a try

      1. To draw/paint/sculpt well? Thousands and thousands of hours. If you are an artist you never stop learning. However, lighting should be an accent not a focus 80% of the time. If they want to learn more they can do it, but this sounds like a great entry point. They likely have other parts of that installation piece they need to focus on instead for this first time out… like properly casting that 2 part resin for the first time and not wasting hundreds of dollars.. more than twice…. on that casting.

    1. Sometimes you need a cartwheel, sometimes a bicycle wheel and sometimes you need a pair of wheels with a differential gearbox and planetary drive.

      Besides, sometimes reinventing the wheel is just plain fun.

      1. I run my lights with gobos and fog machine with Ableton live, using a cheap DMX adapter. So, lights audio, dialog, etc already sync’d. All with the control and drawing curves ability of the DAW software. There is genlock out of all of my audio adapters and I’ve sync’d video to audio several times.

        1. And for people only using audio and video in a non-interactive timeline system, where the animation tools provided by bitwig or ableton live are enough, I recommend to stick to that, for sure.
          Now, if you want to query some api online, or connect to a gamepad or sensors, animate colors, control a serial interface, then I’d recommend having a look.
          Also, wanting to run from linux or raspberry, or creating for someone without asking them to pay a license just for audio playback (when not playing live/improv of course) with some animations can be interesting imho.

    1. Ahah how would you call it then ? It it not how i I’m always interested in how people view it.
      It is for me more of a technical conductor for installation and shows, but hearing people say more and more over time that they use it also for prototyping, monitoring, testing, simulating, etc. the expression “swiss army knife” came up often. I actually don’t like the metaphor so much, but it is very explicit indeed in what readers here may see a potential use.

    1. Well, then you may want to actually try it and see the difference :)

      I have been working with Max/MSP, PureData, TouchDesigner, VVVV for years, and have come to the conclusion that those are closer to visual programming rather than creation and orchestration.
      While those software are all able to provide the same possibilities in term of pure control and protocol, they have not been designed initially for the purpose of a “meta-software”, and imho using them for this purpose results often in a very complex, not future-proof, hard to understand/debug setup.

      I actually created Chataigne to stop needing to use those paradigms for this part of the creation, but only use them where they shine, and manage the bigger picture with Chataigne.

      Also, if you test it, you’ll find few features that are actually not available in pure data and that provide a really easier way to create, like timeline, multiplexes, dashboard..

      It is actually very far from PD in term of usage, but is very complementary and can communicate easily with it.

      I hope this brings some clarity to why more and more people are integrating Chataigne in their workflow instead of doing everything in one software that is not suited to hold all those mechanisms.

  2. I’ve always been fascinated with the behind-the-scene workings of theme park attractions… especially those that involve many, many synchronized motion, light, projection, and audio events. (i.e., Disney and Universal, and professional haunted house attractions). I’ve spent a lot of time thinking about how some of those attractions would be built in today’s world of ubiquitous, inexpensive, networked microcontrollers. This strikes me as a niche, but ideal use case for Chataigne.

      1. You were soooo close.

        The artist tells the engineer when lights, motors, sounds, etc need to be activated, and the engineer … uses Chataigne (or another piece of Synchronisation/Coordination Software – knowing Disney they most likely have their own custom software for that) to implement the complex relationships between safety equipment, motors, lighting, soundeffects, user inputs, animatronics, pneumatics, displays, etc. etc.

        Chataigne is more about coordinating the modules that implement the PID if you will.

        Sidenote: I am sure you know already but just to clarify. PID has nothing to do with synchronising/coordinating inputs and outputs into and out of a system such as a themepark ride. By the time the synchronisation/coordination becomes relevant, all the low-level work on the components that would implement a PID loop, would already long be done.

        1. And then the artist can also use Chataigne, because it’s actually accessible from different skills and backgrounds.
          This is also what I was aiming for, tech people can set things up, test, calibrate, etc. and artists can modify that, create timelines, modify cues, etc.
          This makes interactions between different working fields way easier and nicer :)

    1. I just finished a project for Universal involving animatronics and lighting. That kind of thing is usually run with controllers from a company like Gilderfluke or Weigl (the one we used). They’re aimed at themed entertainment (animatronics, museum exhibits, theater, etc) so they’re designed to abstract away all the programming parts and to make the electronics easier. They’ll have digital and analog IO, outputs for servos, steppers, audio, DMX, etc. The sequence and behaviours are then sequenced using timeline-based software that looks a lot like the Chataigne project shown here. Unfortunately they’re very expensive, with input or output modules starting at $400, controllers starting at $800, and the software costing $1000+ so it’s great to see something open source with similar capabilities.

      1. Well then, Kudos to the OP.
        I once sampled the cassette control track of a teddy ruxpin with my EIII and controlled him from the sampler using an audio to cassette adapter. But, it took a while to isolate the control track and figure it out.

      1. Doesn’t ‘il semble que’ require the subjunctive? Also you’d only drop the ‘e’ from ‘de’ before un ‘h’ muet,

        Après avoir écouté le tutoriel, il semble que les lecteurs de HaD n’en aient pas besoin.

        Alternatively, you could use ‘il me semble que’, which doesn’t require the subjunctive:

        Après avoir écouté le tutoriel, il me semble que les lecteurs de HaD n’en ont pas besoin.

    1. Thw year of Linux on the desktop over coming Windows users reluctance to commit happens to coincide with French speakers overcoming their own reluctance to embrace English as the international language.

      Meanwhile the Welsh will carry on trying to convert people to OS/2 by mandating its use everywhere and flogging people with wet leeks that don’t obey.

      1. I don’t think my English (or humor) is good enough to understand if this is a joke or a negative thought about french people :)

        Despite a lot of requests, I decided to keep the whole software in English only, to keep consistency in resources, vocabulary, etc.
        The main spread of the software is word of mouth, and it was born in France. I just decided to do things as they go.
        I still hope that the community will be able to chime in and provide tutorials rather than expecting everything coming from the founders.

        That being said, there is a ~3 hours tutorial video in english + a [mainly] english speaking discord server + English documentation.
        That should be enough for any non-frog-eater heretic to get started ;)

  3. After powering the hardware, Chataigne is the first tool I start before Ableton, Touchdesigner, TouchOSC and OBS.
    During my development with music and visuals, moving from in-the-box to hardware gear,
    I changed almost weekly controls.
    Chataigne provided an easy and fantastic graphical way to route between MIDI, OSC, Websockets, Ableton Link, just to name a few. And this is just a small part of the functions this power-house has to offer.
    No French required with the onboard guides and website.
    And the time that I got stuck, there was Ben and the community on Discord who provided help.
    I don’t react that much here on hackaday, but this time I have share and tell you,
    Chataigne IS a piece of art. Love your work Ben!

  4. When I decide to install development software on my machine, I want to look at screenshots of what the IDE or interface is like.

    This is usually a matter of scrolling through the app’s site or clicking on a ‘Gallery’ link.
    For this project, I looked at the main page. No Gallery at the top. I scrolled through the protocols, supported hw/sw, download (I haven’t even seen what it looks like yet!) and some links to Youtube tutorials with goofy looking characters I am not going to spend time on unless I see more details first. And a map with dots on Europe.
    Aha, 3/4 the way down, there’s an Official Documentation link.
    That takes me to a page that modestly announces how amazing the documentation is. Only then do I get a sidebar link to ‘The Interface’.
    Finally, three links off the main site and I get to see an IDE screenshot!
    ‘Amazing’ documentation I’m told… but what this thing looks like is in a locked filing cabinet in a basement in a condemned building with a sign saying ‘Beware of the alligator’ or something like that.

    TL;DR: a ‘Gallery’ link at the top of the main page would help.

    1. Well, too bad you didn’t use the time writing this to actually download and test the app (5-10 MB), that would actually have been faster :)

      Thank you for your feedback, I’ll take some time as well trying to answer:
      – The header background of the website is a screen shot (a bit blurry, granted, but still quite readable I’d say)
      – I guess I have to be a bit more obvious about the non-serious aspect of the “Amazing” part of the documentation… apparently french humor is not that easy to grasp for everybody.

      I try not to dive into those kind of comments usually, but from time to time it also feels good to bring another side of the story.
      I have been developing this software for 6 years on my spare time, initially only for my own use and the people I work with, and after friends requesting access, eventually decided to make it public. I spent a lot of time trying to make things nice and easy for people, while at the same time finding ways to keep enjoying that, putting jokes here and there, having a funny graphics and icons, etc.

      I’m still almost the only core-code maintainer, with friends helping on features and modules. It takes a lot of time and more and more of this time is not spent for my own use anymore, but for others.

      I came to realize that the software and website are at point where people expect the same quality and “customer service” as a professional/paid software, and often miss the point of open-source : if something is bothering you, you can just make something about it instead of complaining that it’s not already there.

      I don’t really see the point of a gallery for a software when you can just check a video and see actual interaction, but why not, if people want to make it happen, I’ll be happy to give them access to the website and make it better for the next gallery-needy people to visit :)
      As for the documentation itself, I’m obviously doing it for other people than myself, taking days of my personal time. Anybody feeling that it’s not enough is welcome to improve it.

      1. This reply is essentially the foundation of my thoughts on society, progress, sociology, human psychology, and human beings in general.. maybe the behavioral trait highlighted here mostly plagues American culture?
        Nevertheless, it often is accompanied with lack of accountability, laziness, entitlement, codependency, and other toxic characteristics. Beware if you recognize these symptoms in someone in your life, you may be dealing with a narcissist

      2. I’m not asking for a full immersive VR experience to be added to the site, just a page with a few example screenshots like every other IDE project, from the main page. How hard can that be?

        Installing your app just to see what it looks like? I’ll pass, thanks.

        1. Not hard at all. Just as easy as the hundreds other things I’m already doing to maintain, fix, improve, teach this one project, which is one of several others that also require time, all of that not being my paid job.
          I guess I’m also voluntarily not forcing myself to do everything people are “asking”, because I still believe that this is what the open-source community can and should bring to such a project.
          I don’t expect everybody to dive in the 140k lines of code and fix things, but I definitely prefer people offering to help for trivial, non-time-consuming tasks rather than consumer-like, not so constructive criticism.

          I’m not trying to convince you to try it, but I think appreciating someone’s effort to bring something to the community is not so hard either when writing such a comment.

          If you have any work that you’ve done and shared open-source in your free time that would show me what you consider as “good enough to consider spending more time on it”, I’ll be happy to check it out.

          1. Ben, Sure, no problem. I know what it’s like working on open source projects, I have my own for which I am happy for you to check out.
            Here’s one on my GitHub. Notice there’s a 28 page ‘how-to’ PDF manual, with screenshots and examples all the way through it:

            And here’s my Thingiverse designs, also all open source, downloaded thousands of times:

            ALL of my designs have screenshots. Some also have additional symbol diagrams to promote understanding of constructs in the code with their visual 3D counterparts.
            Because people simply want to see what something looks like before they invest the time and effort to install and then understand it.

            I honestly can’t believe you consider my comment for screenshots off the main page (heck a link to ‘The Interface’ from there would solve it) as ‘not so constructive criticism’.

          2. @Mr Name
            do you mean a github project with a screenshot like this ?

            I actually thanked you for the feedback on screenshots. I might not share the point of view but I appreciate the proposal.
            What I qualify as not contructive criticism is all the arrogance it is wrapped in.
            Just because you think you’re right doesn’t mean you’re entitled to say it in a demeaning way.
            Just because you don’t understand 2nd degree humor in a documentation doesn’t mean you have to be hateful about it.

            Thanks again for the feedback, I may add one or two pictures, just for you ❤️

  5. Hi, I want to share my Chataigne experience with you. First post here.
    I’m working for theater company since a pretty long time. Each time we have created a new show, each time we have made a new MaxMSP patch to synchronize everything.
    Two years ago, we were working on a new one. We had 4 days to work on the synchronization of 2 Ableton Live, Qlab, Spat (sound spatialization), Resolume, light and OBS (local stream on audience phones) for a 90 min set. We were thinking, again, to build patches with MaxMSP.
    One guy told us to take a look at Chataigne.
    We watched 2 tutorials on Youtube (in french, we are french, it helps…) during the night.
    2 days later, everything was synchronized and the show was totally encoded. We were ready to work with the director.
    Since then, for all the project I am working on, Chataigne is the software I open first. To control beamers, to control Midi or OSC messages, to log the incoming and outcoming messages, to control small amount of lights. On Mac, PC or Rasperry Pi.
    It is a wonderful tool to link softwares and protocols, to create linked sequences, conditions, mapping.
    And the discord community is really kind and helpfull.
    You should give it a try.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.