Welcome to Field

Welcome to the documentation website for Field — a live-coding environment for making digital art.

Downloading & Installation

Instructions and links are here

Getting started

If you are completely new to Field you’ll want to start with the survival guide. This will go over how to write and execute code, what error messages look like, and how to draw very simple things in 2d just to warm up. There’s also a short guide to JavaScript, the language used in Field.

Moving towards more advanced 2d drawing will give you some new tools for building geometry in Field. These prompts from UChicago’s 2018 Winter class provide a good set of example code for this topic as well. Two dimensional drawing is a nice, easy, self contained spot to practice writing a little code, figuring out how to run it, understanding the error messages and moving on, before tackling more sophisticated topics.

Digging deeper

2D and 3D Drawing

As far as two and three dimensional drawing goes, the most important documentation concerns ‘the Stage’ — which is where drawing inside Field ends up. Once you’ve mastered making geometry, try applying some more Advanced ‘shading’ techniques – where you rewrite the very code your graphics hardware is using to touch pixels. These are documented here. A fun playground for connecting shaders together to webcams, video sequences and music can be found here.

Time-lines and scores

If you want to start building time-lines and scores, you’ll be interested in time in Field which lets the boxes that contain code respond to where they are in the sheet. This leads to more complex, notational strategies.

More than one page of code?

Ready to build more complex assemblages of code? If you are intrigued, or puzzled, by the _ symbol that keeps appearing in example code, or you are getting frustrated trying to build longer, more complex passages of code in Field and need help structuring them, here is some documentation on what that underscore _. is doing.

Sound and music

Field, while primarily intended as a programming environment for making visual things, seems to have accumulated a few features for interacting with sound. These include support for reading and writing MIDI files as well as real time midi output, and support for sound analysis and a ‘toy’ sound mapping system. Field also supports reading motion capture data and video analysis files.

JavaScript

Finally the language that Field let’s you code in is JavaScript. You should find any primer online for the syntax (the ‘how’) of this language (for-loops, variables, function declarations etc.) will be useful; but the semantics (the ‘what’) is all Field, don’t get tricked into reading about web-programming in general. We also have a very short guide.

Other canvases for your work

VR and AR drawing “surfaces”. Our VR support in Field is based on various VR-aware Stage implementations. These places for drawing, and other VR related activities are documented here. Drawing in, and sending code to, web-browsers for use in AR is supported in the most recent versions of Field. A simplified drawing system, based on-top of Three.js is available. Note that much of the complex parts of _.stage and FLine are not yet available inside the browser - it’s expected that we’ll edge towards parity between the two graphics systems over time.

Complete index

  1. General documentation about Field.
  2. An introduction to FLine Drawing. The first prompt was a good set of example code concerning drawing as well.
  3. Documentation about the Stage and more Advanced shading techniques, and the shader playground.
  4. More under-the-hood documentation about Field and what that underscore _. is doing, and a short note about passing things between boxes.
  5. A note on time in Field — including _t() and _.wait() and the like.
  6. Prompts for sketches for UChicago’s 2018 course introducing Field: 1, 2 & 4
  7. Simulations — including Boids, Physics, L-Systems and Perlin Noise.
  8. Notational strategies based on intersections.
  9. OSC support for connecting Field with other software environments.
  10. Make music in Field ! Low level, but very fun, generative audio support.
  11. Support for reading and writing MIDI files as well as real time midi output.
  12. Simple support for the Leap Motion and for Microsoft Kinect.
  13. Support for Motion capture files and video tracking.
  14. Support for video analysis which works offline and in realtime (on fast machines); as well as and older, deprecated real time video analysis. A longish tutorial on drawing various computer vision analyses based on this work.
  15. A note on how to save jpeg sequences.
  16. Support for offline sound analysis.
  17. Some support for loading SVG files.
  18. A new 3D camera for Stage, with handy keyboard control.
  19. Full 3D geometry support and loading .ply point clouds, and even faster .ply file loading for large point-clouds.
  20. An advanced physics example — a game in four boxes.
  21. A ‘Hard Sync’ toy that generates sound from the directories of jpegs that Field likes to save.
  22. Something that loads bounding boxes found by a ‘deep-learning’ driven object detector.
  23. A very short guide to JavaScript, the language.