Field is a Mac OSX [& linux] development environment application for experimental code and digital art that brings togetherÂ theÂ wondersÂ of Processingwith visual programming. While there are a great many development environments and digital art tools out there today, this one has been constructed with two key principles in mind:
Embrace and extend â€” rather than make a personal, private and pristine code utopia, Field tries to bridge to as many libraries, programming languages, and ways of doing things as possible. The world doesn’t necessarily need another programming language or serial port library, nor do we have to pick and choose between data-flow systems, graphical user interfaces or purely textual programming â€” we can have it all in the right environment and we can both leverage the work of others and take control of our own tools and methods.
Live code makes anything possible â€” Field tries to replace as many “features” with editable code as it can. Its programming language of choice is Python â€” a world class, highly respected and incredibly flexible language. As such, Field is intensely customizable, with the glue between interface objects and data modifiable inside Field itself. Field takes seriously the idea that its user â€” you â€” are a programmer / artist doing serious work and that you should be able to reconfigure your tools to suit your domain and style as closely as possible.
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.