What if one environment blended the code goodness of Processing with visual programming metaphors and patches, creating a single world for high definition video and OpenGL-powered 3D, with friendly-looking HyperCard-style inspectors, live coding, extensible graphical elements everywhere, an open-ended canvas, drawing with splines and images…

In other words, what if you could make anything, more easily?

That’s the vision of Field, a new authoring environment built on Java and Jython (Python on the Java VM). It’s Mac-only, with other platforms possible in the future (the underlying libraries are largely cross-platform, and apparently there’s the beginnings of a Windows build somewhere).


I asked Nick Rothwell to describe what it was about. Nick is collaborating with creator Marc Downie on choreographic generation and visualisation tools for Wayne McGregor’s Random Dance Company at Sadler’s Wells in London. Wayne, in turn, is choreographer in residence at the Royal Opera House and has worked on the Harry Potter Movies.

And Field can make your development environment feel, well, like a Muggle.

Field — Hybrid lines & code from OpenEndedGroup on Vimeo.

Here’s Nick’s capsule description:

Field is an open-source Mac-based media authoring system, built in Java by Marc Downie of the OpenEnded Group based on ideas formulated at the MIT Media Lab, and subsequently used for a variety of hi-def video installations and choreographic projects. It’s a graphical development environment attached to a high-resolution 3D OpenGL rendering engine, and applications are built on a display canvas with object boxes reminiscent of MaxMSP. But Field is different to MaxMSP because it’s language-based: the object boxes are individual containers of Python code, and the canvas is a flexible, scriptable interaction surface: Python code can draw on it using a 2D renderer, and user interactions and timing markers call back into the code.

There is a sophisticated editing environment for the code, and the canvas contents are version-controlled in a Mercurial repository which Field itself can inspect. Fieldis sufficiently self-referential to be regarded as a meta-environment: for example, click-and-drag editing operations on graphical elements cause Python code to be generated (and, of course, version-controlled). The text of the Python code itself can even contain embedded user interface components. Because Field is written in Java, it has access to all the Java libraries out there as well as portable Python libraries. Field can bridge to the Processing environment, allowing Processing to be scripted in Python and animated using Field’s canvas timelines and user interface components.

Working with Processing

Field — Processing Plugin overview from OpenEndedGroup on Vimeo.

The Processing integration is documented in a video shown here, as well as in a full tutorial. With everything built on the Java platform, though, it’s not really necessary for environments to “compete” – it’s a perfect example of how they can coexist, and how the Java platform can be more than just the Java language and the sometimes-ragged APIs that live in the JDK. (If you don’t know what that means, just trust me – that can be a world of hurt.)

Built with Field

Synchronous Objects by choreographer William Forsythe and a team at Ohio State led by Norah Zuniga Shaw is a spectacular example of ways in which motion can inform choreography. (Indeed: it really is about creating digital motion. Correction: this work is presently built in Adobe’s Flash 10, but there’s new work going toward Field – and it remains a great example of the intersection of choreography and digital visuals.)

As Nick put it in a recent email:

We’re all kind-of hooked up into this loose rebel alliance of choreographic software/systems research – I’ve worked at Forsythe’s Ballett Frankfurt and we’re all hooking up for a session at Sadler’s Wells next weekend… so I need to get Fieldworking again with the 3D visualisers…

It’s funny, I think that was once the way things were with Max and Isadora, except generally not in the hands of people who really knew how to code. Now, as fear of code and real research melts away, people are pushing the envelope in all of these tools.


Most importantly, of course, you’ll want to check out the work of the OpenEndedGroup. Among their literally open-ended projects, Loops is an ongoing work with Merce Cunningham, based on his 1971 solo. Merce more than any 20th Century choreographer was interested in extending the body into a new, digital self – I’d say even his non-technological work is fertile ground for inspiration in this arena. (See also the software he worked with early on, LifeForms … actually, this is probably the subject for a whole other post.)


There’s endless, beautiful work to check out at the OpenEndedGroup’s own site, like the Point A –> B stills above:

In a way, Field itself is an artwork by the group. It’s stunning work. Stay tuned for more both on the artwork made with this environment, and the evolving tools behind it.

  • blprnt

    Great post, Peter.

    I've been wanting to try out Field for a while now, but haven't found the time. I think my excuses are running out, though – May may be the month for me & Field!!

  • Ryan Nestor

    Wow, looks cool. I'll have to try that out.

  • Nat

    Hey Peter !
    Guess that makes both of us happy, java + python :)

  • Joel Gethin Lewis

    Intriguing! I am looking forward to having an experiment myself.

  • mazn

    any one know any cool tutorial links?

  • Luke Noonan

    Mark and the gang gave a presentation on Field during a residency a few weeks ago. It really looks so cool. If whomever is working on that windows port is reading, I would love to help with testing etc.

  • Pingback: Field [Mac]: OSX development environment for experimental code and digital art | CreativeApplications.Net

  • vade

    I think what I find so interesting about Field is the fact that the 'canvas' can have user interface items instantiated and manipulated in it. The Ui is part of the timeline and makes no discernible difference between the interface and the performance side 'output'. Id love to see some more about this, it certainly looks like a different take on performance software.

  • grigori

    Once again Peter, great find!!!

  • Blake

    wow, this looks amazing. now only if there were the equivalent for processing…

    …or if you could just load processing sketches into max as MXJ objects. I know thats been talked about for a while now.

  • Pingback: Field looks like an amazing tool | Interaction Design Umeå

  • Kyle McDonald

    Ditto what Luke said. I was super impressed by the presentation they gave during their residency recently (EMPAC @ RPI), but swapping OSes is only slightly more work than I'm willing to put in…

  • Pingback: Dailycious 20.04.09 «

  • Marc Downie

    Thanks for the nice article. Some responses to these comments:

    @mazn — some tutorials are on our main site: for Processing , for 2d printmaking and some example code . Start here if you are a programmer.

    @Luke Noonan — we're not quite at the stage of needing testers for the Windows port, but if you join you won't miss the call when it happens.

    @vade — while blurring dev UI, notation, performance interface and artwork is something that Field encourages, it's optional. 3d renderers open in a new, additional, blank window.

    @blake — Field wraps (or hijacks, or eats whole, depending on your point of view) Processing. You write against Processing core libraries and 3rd party extensions in Python (or other languages) live. Processing isn't close to our hearts or art, but Field is a development environment in Java, so the bridge between the two was very easy to write and it stretches Field in interesting ways. Eating an environment whole is fun, I'd love to see Field do the same to Max via MXJ. Anybody want to help out?

    @Kyle McDonald — we're in talks to give a weekend-long Field intensive at RPI some point, probably in the fall. If this sounds like a good idea, start making some noise.

  • Joe

    Wow this looks awesome! Nice one there Mr Kirn :)

  • Pingback: visualisierte | media design – Weblog about the life of a digital media designer : links for 2009-11-08