Los Atlantis

//TouchDesigner Developer, Software Developer

May, 2015

  • active-script 
  • distributed 
  • immersive-theater 
  • future-of-storytelling 

Los Atlantis is an experimental production by UCLA REMAP, supported by Google’s Future of Storytelling program. It is a multisite live theater performance, where audience is immersed in a story about travelers who explore futuristic Archive of a historical city — the city of the production – in this case, Los Angeles. The research effort aimed at testing the possibilities of authoring story and code at the same time, and resulted in prototyping an “Active Script” – a subsystem that combines traditional text written by authors with control code written by developers. Developed show system also includes a media repository backed by YouTube, distributed cue management system, real-time media processing pipeline, a web interface for the online audience and a mobile guide. Detailed information on system architecture and implementation can be found in the published paper The Storytelling System of Los Atlantis.

An Active Script, is an idea of a document, that combines traditional show script with control code blocks through the special markdown formatting. A screenwriting markup language Fountain is customized to support embedding Javascript code blocks – Web Components – that can be configured by non-developer story authors.

Produced by OmniGraffle 6.6.2. Hacked by peetonn ᕕ(⌐■-■)ᕗ AUTHORS DEVELOPERS ACTIVE SCRIPT JS JS JS FOUNT AIN+ HTML Q0 ST ANDBY GO Q1 ST ANDBY GO Q2 ST ANDBY GO CREW TOUCHDESIGNER YOUTUBE YOUTUBE TOP CUE IN POSTPROC OUT

Once ready to be shared, an Active Script document is processed by customized compiler Fountain+ to generate a) a PDF document for distributing among the team and actors, and b) an HTML page that renders JS Web Component blocks inline with the script text as action links.

By clicking on these links an “operator” from the crew triggers show cues, following along the script. Cue control system utilizes Named Data Networking as a transport, allowing to deliver commands to individual nodes using hierarchical or multicast names. Video projection, sound, website and mobile guide text prompts are the cue examples that could be triggered from the HTML show control page.

Each projection node runs TouchDesigner patch with custom operators for cue triggering and live YouTube streaming. Authors store captured show media on the show’s YouTube channel, and provide link to the videos they’d like to trigger in the Active Script document. When cue is triggered from the HTML page during the show or a rehearsal, the video link, along with the additional information for overlaying video effects, is being delivered to a node using cue control system.

Projection node prefetches video, applies video post-processing effects and starts playback on the cue “GO” command, outputting final image to the projector.

The Observatory (website) and The Guide (mobile web-interface), both not shown on the diagram, are aimed at engaging audience pre-show and during the actual show, by providing personalized text prompts and media uploading solicitations.

The Observatory: pre-show and online audience engagement →

Real-Time media post-processing pipeline in touchDesigner →

Fountain+ Active Script markdown →
The blocks in <<...>> refer to custom Web Components.

.SCENE 1 (@ RACHEL) - FLASHBACK

(A small antechamber with seating and a locked door. A small group of Candidates
    enter. )

(Each chamber is dimly lit by a  digital sign (SGN-A*) reading:  “Date of Transfer
    Event: <<date_performance>>. Time: <<transfer_countdown>>. )

(A Traveler, RACHEL, is in the room, texting or playing or on her mobile devise
    obsessively. Electromechanical sounds are heard off-stage, via SND-T*. They
    might seem to be related to Rachel’s obsessive activity.  She pauses and then
    hits a button hard- the sound of rain  begins nearby. A LONG BEAT and then a
    distant pinging sound off-stage.  The sign updates: “Date of Transfer
    Event: <<date_performance>>. Time: <<transfer_countdown>>. )

(The Travelers in each room are heard only by their group of audience members. )

(RACHEL is discovered. She looks up seemingly in a daze as if after a long
    night’s study cram. She addresses the Candidates.)

RACHEL
When I was a girl. I had dreams. Strange dreams. I had so many things to think
about that my mind would always wander when I shut my eyelids. I dreamt with colors
and animals and newborn babies crawling. I dreamt of big sky and highways and family
vacations. Dreams about old flames and new fire. I dreamt of Rottweilers in heat.
I had dreams. Good and bad. I was able to remember some well. Others not so much.
Back then, everyone had dreams. *Everyone* had things going on. Happening. Events
occurred. Now I can’t remember. Now we’re stuck here in this...this *wasteland*.

(A louder ping, closer. )

RACHEL
Did you hear that?

(The sign (SGN-A*) starts blinking:
    “Date of Transfer Event: <<date_performance>>. Time: <<transfer_countdown>>. ))

Showtime photos →