is this ARG?

is this ARG? is a social media aggregator I’ve built to gather feeds from the ARG community/affinity. The site is kind of like an amped-up Twitter list, displaying feeds from blogs, Delicious accounts, and other open/publicly-available social media sources — including the Unfiction forums and even Wikipedia.

The idea is to amplify the potential vectors for collaboration and research among and across the ARG community (and provide a handy real-time research tool). Everything that gets posted across the web by the sources listed on the site’s sidebar is gathered and put into a single stream on the root page. I’ve also made it possible to view the individual output of people/sources on the list by clicking on their names. There’s an FAQ on the site, and I’m also working on some more features that will roll out soon, including a way of archiving everything, curating venn-diagram-like clusters of streams, and generating keyword clouds to help with browsing through past posts.

The inspiration for this came in part from something Brooke Thompson wrote in reference to the ARGdb project, something to the effect of wanting to find a way to bring together all the energies members of the community are putting into different web fora. This is an effort in that direction, and also a bit of a curatorial endeavor: for me, making this project is kind of like editing a magazine or journal of sorts, populated not by articles or essays but rather by voices.

Viz

Overview

iphone camera cu
What if there was a hidden world layered atop visible reality that could only be seen by certain people? What if you were one of those people?

Viz is a casual augmented reality game that enables players to discover and embed virtual objects — or “vobjects” — in physical space by looking through the camera viewfinders of their mobile phones.

By discovering and embedding vobjects, players earn points, advancing their positions on local, national and international leaderboards. These points also allow players to unlock special add-ons, tricks and bonuses for their vobjects (see “Variations and Extensions,” below).

Pervasive & Persistent Social Gaming

Players who install the Viz application on their phone can expect an ambient “always on” play experience that exists within the flow of their everyday lives. Players engage with Viz when they have spare moments in public spaces. The application icon, which sits inobtrusively in the notification area of the player’s phone (see figures below), works in the background and changes in appearance depending on the proximity of vobjects (i.e., a quick glance at your phone’s desktop tells you all you need to know). If the player wants to score points by locating these objects, they can view GPS information and activate the “scanner” tool by simply clicking on the application icon. The game is meant to accompany players as they move through space, providing active and mobile individuals with a persistent low-intensity creative social gaming outlet.

Players

Because of its dependency on user-created content, Viz requires a sizable player base in the areas where it will be played. Like a certain social networking service or other open-ended collaborative production games such as SF0, Viz will begin in specific neighborhoods and cities before expanding to national or international distribution. The game will be released in limited numbers to geographically-constrained player groups, beginning with student beta-testers at urban post-secondary educational institutions. The targeted distribution of the game will expand from there, first to tech subcultures in relevant urban centers, then to various segments of early adopters and tastemakers across the Web. These initial user groups will “seed” the environments of their respective urban areas, ensuring that secondary waves of users have no trouble discovering and interacting with active vobjects.

Objective

The objective of the game is to accumulate points by a) discovering vobjects other players have embedded in the physical world; and, b) having vobjects that you have embedded discovered by others.

Setup/Interface

Viz has two main “active” modes: scanning and embedding. Players toggle between these modes via a simple button interface. The game also has a persistent “passive” mode. This mode informs players of nearby vobjects via inobtrusive notification bar icons on their phone’s desktop. A “library” mode gives the player access to game statistics and other information.

The following illustrations show how Viz looks on the Android operating system.

Figure 1: Passive mode

gui-main

Subtle alerts, similar to those used to denote wi-fi range/signal strength, appear in the notification bar when players are within 500 yards of a vobject (see icon in upper right corner). By clicking on the alert, players can activate the Viz interface.

  • The application can also be launched by clicking on its icon in the applications drawer.
  • The rest of the user’s phone works the same as always: the game tries hard not to be intrusive.

Figure 2: Viz Main Screen

gui-interface-compass

Viz’s main screen changes in various ways according to the location and context of the player.

  • If the player is outdoors (pictured), a simple compass-like feature will point in the direction of the nearest vobject.
  • If the player is indoors and within range of one or more vobjects, the main screen will provide the player with additional information about the number and nature of any vobjects in the immediate area.
  • The tabs at the bottom of the main screen toggle between modes and settings.
  • Hardware controls enable the user to exit the app at any time.

Figure 3: Map mode

gui-interface-mapmode

Viz’s map mode shows the location of nearby vobjects (red pins) relative to the player (blue pin). By consulting this map, players can move to within scanning range of a vobject.

  • Clicking on a vobject causes a text balloon to pop up indicating whether it has been captured by the player. If the player has already captured the vobject (vobjects can only be captured once — see “Rules,” below), they will be able to click on the balloon and view relevant comments and statistics. If the player has yet to capture the vobject, the balloon will merely say, “Unknown.”
  • Players can opt-in to share their location with other players. Map mode will display any participating players as yellow pins.
  • Players can zoom in and out and pan the map as in other applications.

Figure 4: Scan mode

gui-interface-scanmode

Once players have reached the vobject’s GPS location, they can scan the immediate area for the vobject itself by switching Viz into scanning mode. Scanning mode uses the phone’s built-in camera functionality to turn the screen into a kind of window through which the player can look. The player finds the vobject by panning the camera around, examining visual features of their surroundings until they find the feature that contains the vobject. This feature is an image stored in the Viz database and streamed to the phone based on the player’s present location. Viz “locks on” to features by comparing the original embedded image to the image currently visible through the player’s phone. This effect is achieved through the use of image recognition and orientation systems like those recently developed by Nokia or Microsoft. Once players have locked on to a vobject, they can press the “Capture” button (the only button on the scanning screen) to add it to their library and collect points.

  • Vibration feedback and various visual cues let the player know when they pan past a vobject.
  • Image ghosting helps players to lock in the image.
  • A standard dialog box pops up when the player successfully captures a vobject, informing them about how many points they have scored. Players can click on “more” to view a separate info screen containing statistics and comments about the vobject. This screen also contains a submission form enabling players to add their own comments. Once a player has captured a vobject, this info screen is accessible from their Library (see below).
  • The “Capture” button appears grayed-out until the image is framed within the approximate boundaries of the original (embedded) image.

Figure 5: Embed mode

gui-interface-embedmode

Once players have accumulated enough points to embed a vobject, they may do so by switching Viz into embed mode. In this mode, players can point their phone’s camera at an object in the physical world to which they wish to attach a vobject. By pressing the “Embed” button, players will expend points and attach a vobject linked to their profile to the physical object, building or landscape they see in their viewfinder. This vobject now becomes something for other players to find (and therefore a new way for the embedding player to earn points).

  • Embedding a vobject is a simple point-and-shoot operation.
  • Players can consult an “Image Legibility” reading while in embed mode to make sure that the vobject they are embedding will be easily capturable by anyone who finds it.
  • The embed screen is only available to players who have enough points to embed a vobject. If a player attempts to switch into embed mode when they do not have enough points to embed a vobject, an alert box (not pictured) will inform them that they need to earn more points before they can complete this action.
  • If a player has purchased or unlocked a power-up — for example, a bonus modifier of 10 points/scan — they will be asked if they would like to use this power-up on the vobject they are embedding. This process is discussed below in both “Rules” and “Variations and Extensions.”

Figure 6: The Library

gui-interface-librarymode

Library mode enables players to view lists of the vobjects they have captured, the vobjects they have embedded, and the points the have earned. The screen also contains a button that launches a Settings window (not pictured) wherein players can adjust profile information.

  • Two simple buttons allow players to toggle between lists of vobjects they have captured and vobjects they have embedded.
  • Clicking on an individual vobject in a list opens a dialog containing additional information about that vobject, including how many times it has been scanned, when and where it was embedded, and who embedded it.
  • Profile information can be modified in the “Settings” screen (not pictured).
  • All lists are scrollable to conserve screen space.

Procedures/Controls

Read Map To locate vobjects, players will activate the GPS map function of Viz to help them get within range.

Capture Vobject Once players are near a vobject, they will scan the area using Viz’s camera function until they “see” the vobject superimposed over real space. They will then press the “Capture” button to collect the vobject and score points.

Embed Vobject To embed vobjects, players must first accumulate enough points to do so. Once they have the requisite points, players can activate Viz’s embedding tool. This tool enables players to embed a vobject in a particular location by pointing their phone’s camera at a real-world object, building or landscape. Once the player has selected the view to which they want to attach their object, they will press the “embed” button. Doing so subtracts points from the player’s account.

Check stats Players can read statistics about their own usage, how many points they have, and how many points they earn from embedded vobjects by switching to library mode.

Review Vobjects Library mode also enables players to view lists of the vobjects they have captured or embedded; by clicking on the vobject identifiers (GPS coordinates or city/postal code designators), players can view additional information about each vobject.

Unlock Power-ups Players can use points to unlock power-ups which modify the way the vobjects they embed tally scores and affect other players. The power-ups button in library mode accesses a list (not pictured) of power-ups, organized by price. Power-ups that players have purchased are displayed in this list with a star next to them.

Use Power-ups Players can attach a power-up to a vobject as they embed it in a physical place. If a player has any power-ups to use, they will be given the option to use them at the time of embedding.

Modify profile settings Players can change their username, home location and other information in a standard profile/settings dialog. This profile can also be modified via an online web interface.

Flow/Game States

See attached flow chart (pictured below).

IMAP-541-Viz

Rules

Beyond the rules implied and specified above, readers should be aware of the following scoring rules and constraints:

  • Whenever a vobject is discovered, points are awarded to both the discoverer and the embedder.
  • Objects that are discovered on a regular basis score fewer points than objects that are only viewed occasionally. Players can thus adopt a variety of strategies for accumulating points: for example, player A might embed objects in obvious public spaces (e.g. tourist sites, popular cafes, etc) in order to get a large volume of low-value discoveries, while player B might embed fewer objects in more hard-to-find locations in order to get a small volume of high-value discoveries.
  • Any objects that are not found within a period of thirty days will disappear. This constraint prevents players from embedding objects in overly obscure locations and adds an element of gambling to certain placement strategies — e.g. players must balance the risk of their object not being found at all against the potential gain of it being found only once or twice.
  • Embedding vobjects (and unlocking extra functionality) “costs” points, motivating players to earn as much as possible.
  • Vobjects may only be scanned once. Players may not scan their own Vobjects.

Variations

Power-ups

When embedding, players can opt to attach “power-ups” to their vobjects. These power-ups have a variety of effects on scoring and gameplay. Below are two proposed power-ups and their effects:

  • Trap The Trap power-up causes the player who scans the vobject to lose 500 points. The embedder of the vobject receives these points in addition to those they collect for the vobject being scanned.
  • Trade When a vobject imbued with the Trade power-up is scanned, the player who scans it becomes the owner. In exchange, the former owner of the vobject receives one of the scanning player’s vobjects (selected at random). If the scanning player has no embedded vobjects in play, the Trade power-up is lost.

Other

Finding and Leaving Traces

Viz is an inherently social game. Players get to experience the thrill of discovering secret objects left behind by other people, often in scenic or humorous locations. Interacting with these objects reveals additional layers of sociality: for example, upon discovering a vobject, players may choose to attach a voice or text “comment” to the item, which can be then read (and responded to) by the vobject’s embedder and any subsequent discoverers. Importantly, however, players don’t need to comment on vobjects in order to experience the social dimension of Viz — even if players ignore all but the most basic affordances of the game, they will engage in the fundamentally social activity of finding and leaving traces of passage. In this sense, embedded vobjects are reminiscent of the Inuit inuksuks (or inuksuit) found in the far North:

An inuksuk… is a man-made stone landmark or cairn, used by the Inuit, Inupiat, Kalaallit, Yupik, and other peoples of the Arctic region of North America, from Alaska to Greenland…

The inuksuk may have been used for navigation, as a point of reference, a marker for hunting grounds, or as a food cache. The word inuksuk means “something which acts for or performs the function of a person.” The word comes from the morphemes inuk (“person”) and -suk (“ersatz” or “substitute”)… (Wikipedia: Inuksuk)

Inspiration

This idea sprung from two sources. First, a whiteboard session with my colleagues Amanda Tasse and Lauren Fenton got me thinking about the issues involved in making an augmented reality game with a social dimension (our original idea was a kind of “truth or dare” casual mobile app wherein players could discover other players in proximate space via GPS or other location/context-sensing technologies and challenge them to do humiliating and/or dangerous things). This brainstorming session raised a few intriguing questions: What kinds of ambient AR gaming experiences would players reasonably want to layer atop their “real” lives? What motivation would they have to participate? And, crucially, what kinds of game mechanics can we create with AR that simply can’t be created any other way (ie, how can we avoid simply using AR as a gimmick)?

The second source of inspiration is largely a consequence of the first. In an effort to answer some of the questions raised during the whiteboard session with Amanda and Lauren, I started looking around the web for existing AR games and apps. I found plenty of cool examples. But the most thought-provoking discovery occurred when I came across Denno- Coil, a recent Japanese science fiction series about kids living in a world wherein AR has been seemlessly integrated into everyone’s lives via special eyeglasses and visors. The story and setting conceits of Denno Coil are a goldmine for AR developers. Here are a few notes I clipped from the Wikipedia article on the series [Accessed 20 September 2009] as I was developing my own game concept:

  • [Users] access the virtual world through Internet-connected visors called denno- eyeglasses. This allows them to see virtual reality superimposed on objective reality. To visually confirm something as virtual, the children often lift their glasses from their eyes. The visors also work in conjunction with futuristic ear monitors placed behind the ear, which allows them to hear sounds from the virtual environment.
  • Software tools are visually represented as tactile tools (e.g. a fishing rod) which occupy 3D virtual space and must be manipulated by hand. Metatags, which can be used to damage or enhance virtual objects with certain properties, are visually represented as o-fuda.
  • Virtual objects such as pets cannot be recalled or reset; when a pet runs away, it must be chased and caught in 3D space. Virtual objects and pets are also susceptible to a form of “death” by data corruption or deletion.
  • Fumie Hashimoto handles a software spray can loaded with so-called “black bug spray”.
  • A virus on the run…leaves behind a (virtually) tangible, evaporating black trail of raw “denno- substance”.

See also: Serial Experiments Lain

Million Story Building

If a building could talk, what would it say? How would it “feel” about the comings and goings of the people who use it every day? Would it be affected by their moods and desires? What kind of relationship would it have with its occupants if it could communicate with them somehow, and how would they respond? Perhaps most importantly, would such a feeling-and-talking building even be desirable?

In attempting to answer these whimsical questions, the Mobile and Environmental Media Lab (MEML) at the University of Southern California conceived of Million Story Building, an experimental design project exploring how location-specific mobile technology can add playful, imaginative and practical new layers to the relationship between a structure and its inhabitants.

Using the newly-constructed School of Cinematic Arts (SCA) Building as a test bed, the MEML team has designed a location-sensitive iPhone application (see video) that enables students and faculty to engage with their workplace in a variety of exciting new ways, from scanning Quick Response (QR) code glyphs mounted next to posters in the hallways in order to access and tag video clips from a central database, to leaving virtual messages for others to read in an Augmented Reality view of the building’s central courtyard.

Functions such as these, working together with networks of sensors, interactive plasma screens and web-based social media profiles, made it possible for iPhone-carrying building occupants to learn about SCA history, discover events and activities, share stories and updates of their own, enrich the school’s media archive, and participate in an Alternate Reality Game.

Furthermore, and crucially, users could come to expect increasingly customized communications, behaviors and interaction opportunities as a profile concerning their preferences, habits and interests was generated based on their usage of the system. The end result was a prototype for a personalized and self-renewing “ambient story” experience co-constructed by the collaboration between the occupants of a building and the building itself.

Background

At its heart, Million Story Building is an effort to mobilize a range of storytelling and interaction tactics such that the occupants of the SCA building can experience a deeper and richer connection with their workspace and co-workers. Such an effort is not unique in the history of design; indeed, the practice of embedding story and play in physical space is almost as old as civilization itself – one recalls the Catholic Via dolorosa (Stations of the Cross), the Shingon Buddhist pilgrimage of Shikoku or the transit to the Temple of the Sun at Teotihuacan.

More recently, what Jill Walker-Rettberg calls “distributed narratives” have manifested themselves in public and institutional space through sticker art, coordinated graffiti campaigns, flash mobs and other interventions. Million Story Building emerges at the nexus of these practices and the new potentialities unleashed by the recent blossoming of mobile and ubiquitous computational technologies.

More Information

The Million Story Building series archive is an effort to gather together, enframe and contextualize key planning documents from the first phase of the project’s development. By browsing proposals, demo descriptions, annotated meeting notes and other development documents, readers can get a sense of the key concerns from which the project arose and the various components of the prototype application, both implemented and imagined.

imap.usc.edu

imap-site

In an effort to bring together our disparate postings from various corners of the Web, I created the IMAPgregator, a content-aggregation system that collates everything iMAP students, researchers and faculty submit to blogs, social networking sites and social media sites anywhere and everywhere. The IMAPgregator, located on the IMAP home page, displays all this material in real-time by tapping into the XML/RSS feeds created by the sites and services that students and faculty use to share thoughts, links and media. These feeds are then rendered as a chronological list of entries.

Why do this?

We decided that we wanted visitors to our site to be able to see what we were up to at a glance, rather than forcing them to hop around various external sites to get a sense of who we are. We also thought it would be a good way for everyone associated with the program itself to cross-pollinate sources of inspiration and knowledge. It’s how we’re grappling with the issue of distributed online identities — by “de-distributing” all the bits and pieces of our online existences and presenting them here in a linear flow.

Additional Information

The IMAPgregator is powered by the WordPress plugin, Lifestream. Sorting functionality and dynamic display of feeds is enabled in part by the Custom Field Template plugin.

Sonar Tonebank

The Sonar Tonebank is a simple musical instrument that uses a range sensor to trigger sound samples. Players can create musical soundscapes by moving in front of the range sensor, which maps pitch to distance. This project was created using an Arduino, a PING sonar sensor and the Minim sound library in Processing.

Code & Notes

The Processing code is actually very simple. The program reads range data from the Arduino via the serial port, then triggers samples and visualizer elements according to the distances reported. Any set of samples could be used (for this version, I’m using 16 different short sound textures generated with Reason), and it’s easy to imagine how the code could be modified to send MIDI signals instead of triggering samples.

img_0209

// SONAR TONEBANK

// 1.0
// Jeff Watson
// 27 April 2009

import processing.serial.*;
import ddf.minim.*;

// arduino variables

Serial myPort; // The serial port

// video variables

// minim variables

Minim minim;

AudioSample bell;
AudioSample bell2;
AudioSample bell3;
AudioSample bell4;
AudioSample bell5;
AudioSample bell6;
AudioSample bell7;
AudioSample bell8;
AudioSample bell9;
AudioSample bell10;
AudioSample bell11;
AudioSample bell12;
AudioSample bell13;
AudioSample bell14;
AudioSample bell15;
AudioSample bell16;

// visualizer variables

void setup () {

size(640, 480, P2D);
background(0);
noStroke();

minim = new Minim(this);
bell = minim.loadSample(“F#3.wav”, 2048);
bell2 = minim.loadSample(“G#3.wav”, 2048);
bell3 = minim.loadSample(“A#3.wav”, 2048);
bell4 = minim.loadSample(“C#4.wav”, 2048);
bell5 = minim.loadSample(“D#4.wav”, 2048);
bell6 = minim.loadSample(“F#4.wav”, 2048);
bell7 = minim.loadSample(“G#4.wav”, 2048);
bell8 = minim.loadSample(“A#4.wav”, 2048);
bell9 = minim.loadSample(“C#5.wav”, 2048);
bell10 = minim.loadSample(“D#5.wav”, 2048);
bell11 = minim.loadSample(“F#5.wav”, 2048);
bell12 = minim.loadSample(“G#5.wav”, 2048);
bell13 = minim.loadSample(“A#5.wav”, 2048);
bell14 = minim.loadSample(“C#6.wav”, 2048);
bell15 = minim.loadSample(“D#6.wav”, 2048);
bell16 = minim.loadSample(“F#6.wav”, 2048);

// List all the available serial ports
println(Serial.list());
// Open whatever port is the one you’re using.
myPort = new Serial(this, Serial.list()[1], 9600);
// don’t generate a serialEvent() unless you get a newline character:
myPort.bufferUntil(‘\n’);
}

void draw () {
// everything happens in the serialEvent()
}

void serialEvent (Serial myPort) {
// get the ASCII string:
String inString = myPort.readStringUntil(‘\n’);

if (inString != null) {
// trim off any whitespace:
inString = trim(inString);
// convert to an int and map to the screen height:
float inByte = float(inString);
int VideoMod = int(inString);

println(VideoMod);

// 1st Octave

if ( VideoMod < 5 )
{
bell.trigger();
delay(33);
fill(0,0,255);
rect(1,0,128,480);
}

else if ( VideoMod < 8 )
{
bell2.trigger();
delay(33);
fill(13,82,122);
rect(129,0,128,480);
}

else if ( VideoMod < 11 )
{
bell3.trigger();
delay(33);
fill(0,0,255);
rect(257,0,128,480);
}

else if ( VideoMod < 14 )
{
bell4.trigger();
delay(33);
fill(13,82,122);
rect(385,0,128,480);
}

else if ( VideoMod < 17 )
{
bell5.trigger();
delay(33);
fill(0,0,255);
rect(513,0,128,480);
}

// 2nd Octave

else if ( VideoMod < 20 )
{
bell6.trigger();
delay(33);
fill(0,0,0);
rect(0,0,640,480);
fill(0,0,255,191);
rect(1,0,128,480);
}

else if ( VideoMod < 23 )
{
bell7.trigger();
delay(33);
fill(0,0,0);
rect(0,0,640,480);
fill(13,82,122,191);
rect(129,0,128,480);
}

else if ( VideoMod < 26 )
{
bell8.trigger();
delay(33);
fill(0,0,0);
rect(0,0,640,480);
fill(0,0,255,191);
rect(257,0,128,480);
}

else if ( VideoMod < 29 )
{
bell9.trigger();
delay(33);
fill(0,0,0);
rect(0,0,640,480);
fill(13,82,122,191);
rect(385,0,128,480);
}

else if ( VideoMod < 32 )
{
bell10.trigger();
delay(33);
fill(0,0,0);
rect(0,0,640,480);
fill(0,0,255,191);
rect(513,0,128,480);
}

// 3rd Octave

else if ( VideoMod < 35 )
{
bell11.trigger();
delay(33);
fill(0,0,0);
rect(0,100,640,380);
fill(0,0,255,127);
rect(1,0,128,480);
}

else if ( VideoMod < 38 )
{
bell12.trigger();
delay(33);
fill(0,0,0);
rect(0,100,640,380);
fill(13,82,122,191);
rect(129,0,128,480);
}

else if ( VideoMod < 41 )
{
bell13.trigger();
delay(33);
fill(0,0,0);
rect(0,100,640,380);
fill(0,0,255,191);
rect(257,0,128,480);
}

else if ( VideoMod < 44 )
{
bell14.trigger();
delay(33);
fill(0,0,0);
rect(0,100,640,380);
fill(13,82,122,191);
rect(385,0,128,480);
}

else if ( VideoMod < 47 )
{
bell15.trigger();
delay(33);
fill(0,0,0);
rect(0,100,640,380);
fill(0,0,255,191);
rect(513,0,128,480);
}

// Extra note clears screen

else if ( VideoMod < 50 )
{
bell16.trigger();
delay(33);
background(0);
}

else if ( VideoMod > 50 )
{
}

}
}

See also: Arduino-Graph

img_0207

The Arduino code is also pretty straight-forward. All it does is translate the raw PING sonar data into easier-to-handle Imperial and metric measurements, which are then sent out the serial port to Processing.

int pingPin = 7;

void setup()
{
Serial.begin(9600);
}

void loop()
{
long duration, inches, cm;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// We give a short LOW pulse beforehand to ensure a clean HIGH pulse.
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

Serial.println(inches);

delay(100);
}

long microsecondsToInches(long microseconds)
{
// According to Parallax’s datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}


See also:
Arduino-Ping

img_0208

During the early prototyping phase, I also made a simple Theremin using the PING sensor, based on Alberto Bietti’s excellent documentation. The piezo speaker and button on the current version of the project are remnants of this prototype; I’ve left them on there for now for demoing purposes.

This project was created as an exercise for Perry Hoberman’s graduate seminar, Experiments in Interactivity II.

Dream_Jrnl

dream_jrnl

Dream_Jrnl is a generative literature experiment that algorithmically creates evocative and mysterious texts.

This program was created using Processing and RiTA as an exercise for Perry Hoberman’s Experiments in Interactivity II (CTIN-544) seminar. The source material is a dream log I kept during the summer of 2008.

Click here to launch Dream_Jrnl in a separate window. Interact with the application by clicking, moving the mouse or typing.

Kcolc

Kcolc is a visual/textual timepiece suitable for display on billboards or other large public displays.

This program was created using Processing as an introductory exercise for Perry Hoberman‘s Experiments in Interactivity II (CTIN-544) seminar.

Click here to launch Kcolc in a separate window.

S.T.I.F.L.E.

stifle

S.T.I.F.L.E. is an interactive fiction about broken hearts, experimental pharmaceuticals and wandering philosophers. Written using Inform 7, Fall 2008.

Play here (requires Java): http://remotedevice.net/if/

CityStory

The CityStory project was an experiment in crowdsourced cinema that invited participants in Japan and the United States to gather video of their home cities in response to SMS messages sent to their phones via Twitter. The resulting video archive was displayed in a variety of ways, including a 4K projection at Cinegrid 2008 and a Flash application (see below).

Flash application screen Capture

The videos gathered from participants in the CityStory experiment were assembled into a digital archive. An interactive Flash application was written to display the videos and text snippets based on user-selected keyword tags. (A generative music soundtrack was also created on the fly by the application, but is not audible in the above screen capture.)

Project blog

Screenwriting and Story Editing

Feature-length Screenplays

Marathon
The story of a remote northern Ontario community haunted by the ghosts of the German POW camp that once stood on its outskirts. (.pdf)

Astoria
A genre-bending story of a down-and-out boxing trainer who falls in love with a woman with a secret. (.pdf)

Short Screenplays

The Offer
A short-short about two prisoners with a Hitchcockian twist. Produced at the Canadian Film Centre. Directed by Eric Plummer. (.pdf)

Move 36
A short film about a chess-playing recluse, a phone sex operator and an old man’s legacy. Produced at the Canadian Film Centre. Directed by Sean Frewer. (.pdf)

Synopses

Project Portfolio
A selection of synopses and proposals for feature-length screenplays. (.pdf)

Screenplay Coverage

Coverage sample 1 (.pdf)
Coverage sample 2 (.pdf)
Coverage sample 3 (.pdf)

All material © Jeff Watson.

DiCE

Curatorial/Filmmaking rule-set
Client: Blue Blouse Projects
Concept: Jeff Watson

Exhibitions: The first set of commissioned DiCE videos was presented at the New Communities Dundas Street Gallery in Toronto in March, 2008.

Editorial is the essence of cinema. Montage frames ideas just as the lens frames its subjects. DiCE (Direct Cinematic Editorial) approaches the construction of a finished film from a position of zero expectation. The sequence – and therefore the idea that it frames – emerges organically from the process of capturing the images rather than from a calculated and temporally-distinct review process. As a result, the montage acquires a unique and unforeseen identity reflective of the filmmaker’s ephemeral perceptual instincts and the flow of activity upon which these instincts are focused. In our view, this is the purest iteration of the cinematic impulse. By inviting artists of varying disciplines and backgrounds to create DiCE films, we aim to catalogue ways of seeing, experiencing and narrating outside the context of traditional cinematic editorial modes. The films produced through this initiative will be made available to the public through screenings, installations and both DVD and online distribution.

There are no limitations as to the subject matter, structure or intention of the films curated by the DiCE project. Categories such as “fiction”, “experimental” or “documentary” do not apply here. Participating filmmakers need only observe the following limitations:

  • Standard length: Each DiCE film curated for this phase of the initiative will be precisely one hour in length. This is the full duration of the DV tape included in the DiCE FilmKit.
  • No editing outside of camera: The editorial moment for a DiCE film occurs simultaneous to the moment of inscription. Filmmakers are not permitted to edit or modify their footage using any equipment exterior to the camera itself.
  • Filmmakers may, if they wish, rewind or cue the tape within the camera to capture certain shots out of sequence.
  • The completed DiCE film must be returned to Blue Blouse immediately after filming ends. The tape may not be tampered with or exchanged.
  • If a tape breaks or otherwise becomes unusable before the one hour time limit has been reached, filmmakers should consider their DiCE film complete and submit it immediately.

Representative Project

“Bobby” is a short video created to give participating filmmakers a sense of the kind of work they could create using the DiCE constraints. The video, a documentary about a troubled yet optimistic mental health survivor, was shot over the course of two days in the Summer of 2007. Originally intended as a full-length DiCE project, the video was cut short after the cassette tape jammed in my camera. Significantly, the moment of the film’s termination, imposed upon the narrative by the DiCE ruleset (rule 5, above), is productive of a strangely satisfying ending.

Revver.com: “Bobby”

The Black Sea Tapes

Experimental Media Archive/Alternate Reality Game
Concept, Design and Puppetmastery: Jeff Watson

Exhibitions: The Black Sea Tapes is currently underway.

The Black Sea Tapes is a long-term cross-media storytelling experiment straddling the border between hoax and Alternate Reality Game. In 2001, I received a Media Arts grant from the Canada Council for the Arts to produce a cycle of films and media artifacts which were to be presented as the work of a decades-dead and hitherto unheralded Georgian filmmaker. These films and artifacts were not conceived of as ends in themselves, but rather as parts of a larger metanarrative that would be uncovered and co-created through the curiosity and imagination of an audience.

The Game

The Black Sea Tapes is a long-term Alternate Reality project. Unlike “traditional” ARGs, which thrive on “establishing a network of players who are in the know,” (McGonigal, 44) this project seeks to evade identification as a game for as long as possible (and thus could be classified as a kind of “dark play” ARG). Currently-active game elements include:

  • Engimatically-marked videotape copies of supposedly long-lost film works by the deceased Georgian auteur, “distributed” in washrooms, restaurants, film clubs and other public spaces in various cities around the world.
  • Websites containing information about Georgian cinema and underground artists, most of which is “real”, but some of which makes reference to the fictional filmmaker whose identity is at the centre of this experiment.
  • Web posts on film- and Georgia-related message boards written about the fictional filmmaker by a “member of the family.”
  • Tangentially-related curatorial art projects involving another of the fictional filmmaker’s family members, who is herself a filmmaker.
  • Wikipedia entries that make reference to the fictional filmmaker.

The further growth and development of this project depends on the nature and scope of audience responses to the virally-distributed media components. At the time of this writing, the “mystery videotapes” and web components mentioned above have been in circulation for several months. Additional tapes will be distributed in a similar manner until media clips begin to appear on the internet, uploaded and posted by those who find the tapes and are curious enough about their enigmatic content to share them online. By monitoring a variety of video hosting sites (YouTube, Google Video, Daily Motion, etc) for descriptive keywords and phrases from the labels on the tapes themselves, I hope to engage with the discovery and discussion of these works and, in combination with the ongoing development of other metanarrational components, shepherd forward an emergent narrative concerning the emotional collapse of a young filmmaker at the end of Georgian Communism.

Background

In the context of the history of representation, the aim of this project is to explore, exploit, and explode the semantic structures that underpin the narrative cinema’s capacity to organize historical, social, and individual identity. At issue here are the ways in which film narratives can activate or deactivate the audience’s “metafilmic imagination” — the ability to extrapolate the fictional world that lies beyond the confines of the frame — by foregrounding or occluding questions regarding the origin, intention, and historical position of the film text. Suspense, for example, is created through a partial occlusion of the filmmaker’s intentions — the question “What’s going to happen next?” is only interesting and engaging from the viewer’s perspective if there is some uncertainty as to what the author of the work is trying to say (or, minimally, how she is trying to express a commonly held notion), an uncertainty which is only relieved by the final resolution of the plot.

Suspense thus goes to the putative identity of the film’s author, questioning and ultimately resolving her intentions through figures of character. Importantly, however, there are a range of ontological questions which are rarely, if ever, asked of audiences by narrative filmmakers. In the world of commercial film production, publicity, star systems, formal conventions, and explicit ties to official organs (MPAA, etc) effect a pre-emptive strike on questions regarding the origin and social role of individual narratives: Genre-based advertising ensures that audiences do not have to bother asking themselves “What type of film is this?” or “Who is this film intended for?”; star power and official approval tacitly endorse the ideological position of the narrative, encouraging the audience to align themselves with, rather than question, the philosophy (or lack thereof) of the producers; studios, distributors, and the press release the audience from wondering about where, when, how, and by whom the film was made.

Even in the realm of the avant-garde, such questions are rarely at issue in a film’s reception: we almost always know who made it, when, where, and quite often, why. In both cases, the viewer’s concentration is focused, as it were, “within the frame”: comfortably ensconced in a well-established ontological context, the fiction plays out within a “factual” setting. It is my contention that this “factual” setting — an amalgamation of assumptions, conventions, and extrapolations based on extant knowledge and information received through promotional materials — is no less fictional than the narrative of the film proper, and no less fertile ground for storytelling. The Black Sea Tapes addresses this issue by constructing a fiction of context that does not stop at the edges of the frame.

Canada Council for the Arts references and media clip samples are available to interested institutions and employers. Please get in touch with me at remotedevice-at-gmail-dot-com to request further information.

Counter-Point

Game Mod/Media Archive
Concept, Sound Design and Programming: Jeff Watson

Counter-Point is a sound mod for the popular online multiplayer first-person shooter, Counter-Strike: Source. By replacing the sound files triggered by in-game events such as gunfire, explosions and shattering glass with soothing synthetic tones and instrument samples, the Counter-Point modpack creates an expressive and meditative soundtrack from the chaos of the online battlefield.

Counter-Point is intended to inspire an examination of the unconscious aesthetic collaborations that occur in competitive online gamespace.

Listen to a sample: (.mp3)
Download modpack: (.zip)

Constellation

constellation_large

Constellation is an abstract arcade game that incorporates elements of strategy and physics-based action. Players move a white disc around a horizontally- and vertically-wrapped field. Points are scored by moving the disc into contact with slow-moving gold coins that appear one at a time at random positions on the field. Every time the player collects a coin, an increasing number of red “chasers” enter the field from random positions and gravitate toward the player. In order to dispatch the chasers, the player must guide them into a collision with a white “star.” Furthermore, every time a red chaser collides with a star, a new star is born in a random position on the field, forming the “constellation” from which the game derives its title. The player may also adjust the structure of this constellation by using a tractor beam, which draws the stars toward the player’s white disc, and a “scramble” button, which randomizes the structure of the constellation. Further twists discoverable through game play reveal additional limitations: stars that touch each other vanish, the player’s white disc bounces off stars, and so on.

Controls:
Arrow keys: Movement
Spacebar: Tractor Beam
Shift: Scramble Constellation
F4: Toggle Full Screen
ESC: Quit
Download (Windows XP):
Constellation.zip

Playable online at yoyogames.com

Mentality

Mentality is a 3D knowledge-mapping system that uses semantic networks (or “mind maps”) created with a modified version of IHMC cMap Tools to procedurally generate information-rich virtual environments. These environments will enable users to navigate conceptual space using architectural metaphors. Mentality is envisioned for use in educational and project-development settings as an information visualization tool; other potential applications include use in health care/recovery as an assistive mnemonic system for patients dealing with memory loss, architecture as a means for analyzing flow and connectivity between discretely-purposed spaces, blogging as a way to create personal spatial archives, social networking as a way to map and enable relations between friends and affinity groups, and game design as a level-authoring tool. Finally, Mentality points the way toward a more thorough implementation of the so-called “3D Web” by offering a critique of the architectural metaphors underlying current online virtual spaces.

Technical Outline

In its simplest form, Mentality is a mash-up of mind-mapping and computer-assisted design (CAD) software. The application renders a “room” for each node on a source mind map, and a “hallway” for every connection between nodes (and, ultimately, other mind maps). In addition to creating nodes and connections, users can attach media objects, such as images, 3D models, interactive widgets, audio or video clips, web pages or autonomous software agents to individual nodes for examination and interaction. The virtual space will be generated procedurally at runtime, meaning any additions to or modifications of the cMap file will be represented immediately. The system will accommodate simultaneous authorship and access by multiple users.

The initial implementation of Mentality is envisioned as a way of spatially visualizing the rhizomatic structures of semantic networks. To get a picture of how this might work, imagine a simple semantic network on the subject of American history. To create this network, one might begin by writing down the names of a few presidents, say, “Washington,” “Lincoln” and “Kennedy.” One might then connect all three of these nodes with a new node called “Presidents.” Going further, “Lincoln” could be connected to “Republicans,” “Kennedy” to “Democrats,” and “Washington” to “Revolutionaries.” This process could be iterated at length according to the needs and knowledge base of the user (indeed, it’s not that difficult to imagine a system that could do this automatically, by stripping such connections from an already highly-interconnected information archive such as Wikipedia, Facebook or the Web itself). Furthermore, the user can add media artifacts to each node. For example, the “Kennedy” node could contain an audio clip of Kennedy’s famous “To the Moon” speech, while the “Presidents” node could contain an image of the Presidential Seal.

As the user adds nodes, connections and media artifacts to the semantic network, this information is passed to Mentality, which procedurally generates a spatial representation of the network by finding the most efficient uninterrupted paths (“hallways”) between nodes (“rooms”) and constructing a legible architectural environment to render these connections. When the user changes the semantic network underpinning the structure, these changes will be reflected in real-time, meaning that while connections between nodes may remain unaltered, the specific spatial/architectural arrangement of the nodes and connections will be dynamic, changing according to the needs of the larger system of connectivity demanded by the knowledge base.

Since this architectural knowledge representation will be created in three dimensions, sloping and curved hallways, “staircases,” “ladders” and “chutes” will enable a high degree of one- and two-way connectivity between nodes while maintaining a coherent (although fanciful) spatiality. A variety of algorithms will be tested as the project evolves in order to explore different approaches to rendering this architectural model. For example, in cases of heavily-connected nodes wherein the number of required exit pathways exceeds the limitations of architectural coherence, certain pathways could be shared, branching off to separate nodes prior to termination; alternatively, room size could increase in direct proportion to the number of connections.

Despite the potentially massive architectural representations that such a system suggests, Mentality is intended to make the most of available graphics processing memory and RAM, while leaving a relatively small footprint on data storage and network bandwidth. Because the virtual environment in Mentality is generated at runtime based on an algorithmic interpretation of mind map data, the representation itself is not dependent on huge amounts of storage space or bandwidth; all that is required is the map of connections between nodes and the set of rules governing how to display such a map, meaning the primary bandwidth/storage-intensive elements are the media artifacts within each node. In this sense, the system is akin to a web browser: it is an interpreter of information, rather than an archive. The textures and lighting that flesh out Mentality’s virtual spaces could also be generated procedurally, using techniques similar to those developed by .theprodukkt. Recent industrial and academic work in procedural world and texture generation suggest that this is a promising line of development.

Clearly, successful implementation of Mentality depends on being able to overcome many significant technical challenges. The project will require collaborative work with a diverse range of programmers, cognitive scientists, designers and artists. By working towards the creation of a prototype system, I hope to explore the range of possibilities, problems and theoretical implications presented by procedural spatial representation, and in so doing, generate new questions and objectives for future research. Some of my current thoughts on the implications of Mentality in the development of Massively Multiplayer Online (MMO) gamespaces can be found in the “Discussion” section below.

Discussion: Procedural MMO Gamespaces

The fluid adaptive knowledge spaces proposed by Mentality present a direct challenge to contemporary virtual spaces that use architectural metaphors as a way of systematizing information and organizing communication. Second Life, for example, uses architectural metaphors in an effort to create what proponents describe as the “3D Web.” But if systems like Second Life are at least partially intended to point the way toward a truly “spatial” Web, then for the most part, they fall short of the mark.

Despite recent online and ubicomp shifts toward dynamic data collection, display and representation, information in social MMO gamespaces such as Second Life is presented in a static, hard-coded manner: while certain aspects of the architecture are dynamic – virtual screens, for example, might grab XML feeds to display changing content – the architecture itself is decidedly non-dynamic. Buildings are fixed in space and layout unless their owners engage in the laborious process of redesigning them and/or spend (real) money to relocate. Nowhere in Second Life is there a significant computational feedback between the information content of the virtual spaces and/or their owners and the organization of the spaces themselves. In this sense, Second Life is akin to the early days of the Web: a network of static, hand-coded sites updated only when the author sees fit to do so.

Furthermore, and crucially, the spatial connections between sites in Second LIfe are limited by the location of their initial instantiation: once users set up their virtual homestead, their immediate neighborhood is fixed. The resulting irony is that the geographical metaphor supposedly guiding Second Life becomes increasingly irrelevant over time, as even the most fundamental affordance of the Web – the ability to create hyperlinks – is not adequately represented using the spatial metaphor: if your friends aren’t located in an immediately proximate zone, you’re going to have to “teleport” to see them (whereas in a fully-implemented spatial metaphor, affinity and social networks would be represented architecturally, with proximity reflecting both usage and density of connections). As such, Second Life often takes on a ghostly, abandoned and untraveled feel, much like a selection of rarely-updated websites left over from the mid-1990s.

Like Second Life, the central question asked by Mentality concerns the utility of virtual spaces in communication and representation. But while Second Life suggests that these spaces must adhere to a certain baseline of spatial verisimilitude in order to be usable (ie, the virtual world must be represented as a fixed and contiguous landmass), Mentality asks for the reexamination of such limitations.

A hypothetical MMO virtual world based on Mentality would be a dynamic self-organizing space, shifting form based on context and the connections created by its users. Virtual “neighborhoods” would be organized not on the basis of property acquisition and fixed geography, but rather in terms of affinity networks and taste fabrics. Proximity would be mapped to density of connections and usage patterns; geography and architecture would thus shift to accommodate new connections and activities on a highly contextual basis. How would users react to such an ephemeral and transitory spatial representation? Would this kind of dynamic, contextually-generated environment be of greater utility than geographically static worlds that mimic the physical and economic structures of the real world? Or would it just be confusing? And finally, how would the system navigate and reconcile the multiplicity of contexts implicit in a massively multiplayer gamespace?

Investigating these and other questions raised by the notion of procedural MMO gamespace generation is a core objective of the Mentality project. In concert with several other current projects addressing this issue – from Georgia Tech’s Charbitat to Will Wright’s Spore – Mentality is intended to assist in the creation of a vision for the next generation of networked virtual spaces.

The Bluerose Project

Alternate Reality Game
Lead Writer/Designer: Jeff Watson

Exhibitions: Torgame, 2008

The Bluerose Project is a cross-media Alternate Reality Game (ARG) designed to unfold over a period of ten days in Toronto, Canada. The game, a layered narrative concerning the disappearance and possible murder of a noted neurovirologist, is embedded in everyday environments and hews closely to the “This Is Not A Game” aesthetic of seminal ARGs such as ilovebees and The Beast. Designed for scalable player-communities and structured proximate social play within the Greater Toronto Area, The Bluerose Project seeks to deploy narrative by encouraging its participants to examine their physical and virtual environments for clues, story elements and collaborative opportunities.

If you have been provided with a password to access the Torgame development wiki, click here to launch the wiki in a new window. If you do not have a password, but would like to inquire about receiving one, please drop me a line at remotedevice-at-gmail-dot-com.

Move 36


Short Film
Screenplay: Jeff Watson
Director: Sean Frewer

Read the screenplay here (.pdf).

Bran Van 3000 – Shopping

Bran Van 3000 – Shopping

Directors: Brett Stabler and Jeff Watson

Starring Liane Balaban and Momus. Featuring Eek-a-Mouse. Double-length video for Go Shoppin’/More Shopping from Discosis (2001).

Panic

Short Film (35mm)
Client: Omid Nooshin
Screenplay: Jeff Watson, Omid Nooshin and Andrew Love

om-bonfire

Exhibitions: “Panic” has been broadcast in Europe (BBC4, Film4) and North America (PBS/KQED) and has appeared at numerous festivals, including the BAFTA Short Film Festival, the Los Angeles International Short Film Festival, and the Rotterdam Film Festival.

Read an interview with director Omid Nooshin about the online collaboration that led to the writing of this film at Netribution.