NATO.0+55+3d modular, page 02/14
What Is NATO.0+55? / What's the Big Deal?

What is NATO?
NATO.0+55+3d modular, authored by 0f0003.MASCHIN3NKUNST comprises a set of QuickTime externals for Max. Which is to say, NATO.0+55+3d modular (NATO from here forward) permits you to deal with any sort of QuickTime media (films, images, sound, QuickTime VR, QuickDraw 3D, Flash movies, etc.) from within Max in the same fashion as you can deal with MIDI or audio data using the built-in functions or MSP. NATO interfaces with Max in the same manner that MSP does -- seamlessly. MIDI and numerical data can be used to control any NATO function. Because it's Max, you can build complex structures around your QuickTime data that permit control at whatever level you prefer.
A little history: NATO began its life as a single Max external which accepted about 300 commands. NATO classic (still available) could load and playback QuickTime media, edit it, display it, generate QuickDraw and capture video (from an external source, or as generated by NATO) to disk. NATO _modular revised the paradigm, added hundreds of new functions and over a hundred objects.
[Sidebar: there were two big changes. The most obvious revision was the number of objects -- NATO modular is broken down into sets of related objects, each with their own specific function. You only use the ones you need to accomplish the task at hand (hence, modular). The bigger and less obvious change was the introduction of offscreen graphic worlds. NATO classic did all of its processing `onscreen` -- basically, the display space was the workspace. NATO modular does all of its work offscreen -- image data chugs invisibly through NATO objects until you `project` it onto a display object (sensibly called a screen, or `ekran`)].
As I write this, there are over 120 objects in the standard distribution of NATO modular (more on the extended distribution later on). These range in function from image generation, to media import/playback/editing, to digitizing (audio & video), to display and recording, to image analysis, to object tracking, to image processing (special effects), compositing, 3D and inter-object communication. There are also some more whimsical or utilitarian objects which perform tasks like shutting down your computer or changing the color of the Desktop. In terms of breadth, it's an exciting package.
What's the Big Deal?
As I said before, Max was envisioned as a toolkit. Which is to say, you don't pull Max out of the box, and immediately start playing with an interactive performance environment -- you have to build it first. So too with NATO. What you lose in `ease of use` is more than made up for in the flexibility of the system. What can you build with it? Here are a few examples of practical functions that are fairly straightforward to implement using NATO:
- VJ control environment: If you're using NATO as a platform for live video performance, you will want to develop some sort of control system. using Max and NATO, it's fairly simple to bring in external data (from a graphics tablet, or a MIDI controller, or a plain old mouse and keyboard) and process it as instructions to play video, trigger effects, adjust composition, etc.
- Sound to visual processor: If you've got MSP, too, you can analyze incoming audio data, based on frequency, amplitude or whathaveyou, convert it into numbers useful to NATO and then instruct NATO to trigger or alter images (or generate images on the fly) in response to the sound.
- Live video processor: Incoming video data (from a camera or a VCR or your cable TV feed, for instance) can be manipulated and then displayed on any connected monitor or saved to disk. With some of the extended distribution objects, you can route image data through your FireWire port, or send it out over the internet (please read the extended distribution section, below, for important information about these objects and their limitations).
- Autonomous collage generator: Specify a source folder, specify a destination folder, specify the number of collages you want. Any still images in the source folder are randomly opened in groups of two (or more), combined into a single image (using the whole original images or a (randomly) selected portion of them), and saved to the destination folder. In fact, you don't even need to write it yourself -- here's the (simple and sort of lame) one I wrote. Please enjoy.
- `Multimedia`: There's no reason why you can't use Max and NATO to build interactive or narrative work. Obviously, for some types of work, Director or Flash might be more suitable, but if you want to take advantage of the flexibility of Max and NATO, or if you want to have elements of the piece generated in real time (e.g. audio may be generated by MSP, video may be selected at random, or generated/manipulated stochastically), Max plus NATO is perfectly capable of just about anything (honestly, things can get a little messy, but if you don't mind a challenge, you can come up with some lovely work).
- Standalone works: Max, MSP and NATO permit the construction of standalone applications. Anything you build with NATO can be rolled into an application and distributed to the public -- the recipients don't need to own Max, MSP or NATO.

One of the ways in which I've worked with NATO involves the construction of applications that process incoming email (ok, to be totally up-front, I'm using AppleScript, too -- NATO won't check my mail for me). Basically, they import text data from the email and convert it into NATO instructions, which are used to generate QuickDraw images. The resulting pictures are then mailed back to the sender. A variation on this idea uses a webcam, which is directed to take a picture when incoming email is detected. NATO then creates a collage using the image, combined with text data from the email.
all materials on this site (text, images, etc.) © 2000-2001 Jeremy Bernstein