Jitter, a software package first made available in 2002 by Cycling ’74, enables the manipulation of multidimensional data in the context of the Max programming environment. An image can be conve- niently represented by a multidimensional data ma- trix, and indeed Jitter has seen widespread adoption as a format for manipulating video, both in non- real-time production and improvisational contexts. However, the general nature of the Jitter architec- ture is well-suited to specifying interrelationships among different types of media data including au- dio, particle systems, and the geometrical represen- tations of three-dimensional scenes. It can draw hardware-accelerated graphics using the OpenGL standard.
OpenGL is a cross-platform standard for drawing two- and three-dimensional computer graphics, de- signed to provide a common interface for different types of graphics hardware. It is used in a variety of applications from video games to the Mac OS X Window Manager. It consists of two interdependent parts: a state machine with a complex, fixed inter- nal structure for processing graphical data, and an API (application programming interface) in the C programming language for interacting with the state machine. The state machine defines a sequence of steps by which image textures can be applied to the faces of geometric primitives and rendered as seen by a virtual camera to create a final image. Many parameters that control the final image are defined, including a complex lighting model and extra processing steps that can be applied to the final rendering.
Some or all of the operations defined by the OpenGL state machine may be implemented by hard- ware GPUs (graphics processing units). Owing to the high degree of parallelism that can be applied to the task of drawing graphics, the past decade has seen affordable GPUs increase in speed dramatically faster than CPU speeds. This has prompted software devel- opers to move more and more drawing tasks to the GPU, and even some non-drawing tasks such as audio processing.