The artwork uses a client-server model, with the application acting as the server. The app reads from an Input (camera, movie file, etc), runs computer vision alogrithms on the Input data, and sends what data it finds to an Output or Outputs (the Client[s] in this model).
Outputs connect to app and receive current data as long as 1) something is happening in the Input and 2) they stay connected. They can be created in a number of tools.
App data consists of a set of People objects, which can be used to determine the number of People in the scene as well as specific information about each Person. It sends specific events related to these People, noting when they enter, move through, and leave the scene (Input).
Background subtraction can be a crucial piece in making a successful video-based interactive installation. Its name is self explanatory: it allows one to take an image of thebackground, subtract it from the current input, and use thedifference of the two for processing.
Background capture: Capture the current frame, undo a background capture, or set up app to automatically capture the background when it starts up.
> Capture background: use the current frame
> Blank out background: disable Background subtraction
> Capture background on startup: disabled by default
> Capture X seconds after startup: useful with Inputs that require a startup period
Progressive Backround Capture: Slowly capture the background over time. Used in variable lighting conditions, or to make people “disappear” over time.
> Recapture rate: how quickly / slowly to add to the background
App can set itself up as a WebSocket server or client, allowing it to send data to browsers (or other WebSocket clients) on a local network or send data to the web via a hosted server (respectively).
Sensing:Values in the Sensing panel allow for the adjustment of thesensitivity of app’ algorithms and options for specific processes such as optical flow tracking and feature (HAAR) tracking. The corresponding Data view visualizes the data being sent.
WebSocket Server: Sets up app as a WebSocket server for clients to connect to (at ws://localhost:PORT)
> Send Over WebSocket Server: toggle on/off
> WebSocket Port: port to open on
> Open Debug URL: opens a URL in your default browser to test the WebSocket server
WebSocket Client: Open a WebSocket client to an external server.