An Open Source Mac Application made with Cinder


The main software AtriumDisplay.app is an OpenGL application, coded in XCode for Mac OS X using the libcinder.org framework. (It could possibly be compiled for other platforms, but this has not been attempted.)

App source code repo

The source code for the application is made publicly available at Github:
https://github.com/intermedialab/atrium-display

Reporting bugs and issues

Bugs in the software can be reported at Github:
https://github.com/intermedialab/atrium-display/issues

Display Flow


AtriumDisplay.app displays all projects in the Intermedia Lab Portfolio one by one in an endless loop.
Between showing the projects, an Intermedia Lab logotype and one of several configurable taglines appear.
The flow of the application is explained below using screenshots.

Logotype and tagline:

AtriumDisplay Logo Transition.png
Warning tape stribes slide in from the right
AtriumDisplay Logo 3.png
The stripes randomly decompose into a dynamic background as the Intermedia Lab logotype fades in
AtriumDisplay Project Example Tagline.png
As the Intermedia Lab logo has faded, the decomposed stripes transition into a subtly animated yellow background for one of the configured taglines displayed alongside the ITU logotype.
AtriumDisplay Project Example Tagline Out.png
The yellow background recomposes into warning stripes sliding out to the left as the tagline fades. The ITU logotype is kept visible on top until a few seconds after the following project has faded in.

Project:

AtriumDisplay Project Example Full Photo 1.png
Each project fades in with the title shown on a background of the default iconic photo, the project thumbnail 0.thumb.*, spanning all three screens. The ITU logo quickly fades out.
AtriumDisplay Project Example Summary.png
As the big photo fades, it reveals under the title of the first screen the project tags, summary, date, url and participants. On the two other screens the next photos. A slideshow of the visual project assets has started.
AtriumDisplay Project Example Video 1.png
Video assets are played on the middle screen at random intervals during the slide show. Content on the third screen dims to prioritize a warning tape themed playback bar with an animated clock showing the remaining video playback duration.
AtriumDisplay Project Example Photo random.png
During the slideshow all project photos will be displayed. The photos will be shown in the numerical sequence of their filenames. The photos will be faded into one of 4 random placements: spanning one of the 3 screens, or spanning all 3 screens. The randomized placements ensure a bit of variety among the recurring appearances the same projects.


Individual configuration


Some settings make sense to set individually on the display machines. These settings are loaded from a YAML file called config.yaml residing inside the AtriumDisplay app bundle at:
AtriumDisplay.app/Content/Resources/config.yaml
This file is only read once, when the application launches.
Below is an example of the file, so far it only contains one parameter.

config.yaml

resourcePath: ~/Mirrors/atrium-display
Parameter
Type
Default
Description
resourcePath:
String
~/Mirrors/atrium-display
Unix file path to the local mirror of the resource folder.

All other settings, content and configurations are common to all displays and are loaded from the folder located at resourcePath.

Resource folder

The application AtriumDisplay reads further configuration and the Intermedia Lab Portfolio projects from a local mirror of a central resource folder. This mirror is on the located at the resoucePath, which should be on the internal harddrive of the machine running AtriumDisplay, so that the display will continue to function regardless of network conditions, wifi signal loss, cable or routing failures. The location of the resource folder is configured in the config file as shown in the paragraph above.
Here is a screenshot of an example folder:

AtriumDisplay Resouce Files.png

The mirror of the resource folder is kept current using BitTorrent Sync.
The intermedia.itu.dk server also keeps a copy via BitTorrent Sync which is accessible to users in the labadmins group.

Changes to the contents of individual projects are continuously updated and do not require restarting the application.

However, changes to the list of projects (ie. adding, renaming and removing individual project folders) are not reloaded automatically - as of now the software needs a restart to accommodate new or deleted projects. In fact such changes might trigger a crash. A crash will then trigger a relaunch of the AtriumDisplay.app process by launchd, in effect inadvertently reloading the project list :)

Collective configuration


On the top level of the resource folder, a file called lab.yaml contains all content and configuration that is specific to the lab as such. This includes collective settings for all the running instances of the display software. For now there is only one 3-screen setup, but there are future plans to set up screens on the ITU facade. Also the Intermedia website can collect content from this file. Currently the file contains the list of tag lines that are displayed on a yellow background between each project, following the Intermedia Lab logotype.
This file is only read once, when the application launches, this means that changes to this file will not show until the application is restarted.
Below is an example of a lab.yaml file:

lab.yaml

taglines:
 - Welcome to new students!
 - Here's the new Intermedia showcase. More projects are added continuously...
 - A space for full scale prototyping of computational environments.
 - A place for big experiences, creative coding and building stuff.
 - Student work and research projects from the lab will show up here.
 - A lab where art, research and teaching meets in practice.
 - Coding, experience and design beyond the screen.
 - Get in touch at intermedia@itu.dk
 
Parameter
Type
Default
Description
taglines:
List of strings
-
A yaml-formatted list of lab specific tag lines to display between projects.

Projects


The projects are in the Intermedia Lab Portfolio format, residing in a Staceyapp 3.0 compatible folder structure. This makes it possible to share a common file structure among website and AtriumDisplay. Also the website publishes the project portfolio as json/atom/rss feeds with web friendly image sizes, downscaled server side from the original project assets. Read more in the website documentation on the page Intermedia Lab Website.

Each project has its own sub-folder containing project assets such as images, videos and pdfs alongside a project.yaml text file containing project metadata. The formats and filename conventions of the project portfolio and the project.yaml text file is described further on the Portfolio Project Format

Please note that AtriumDisplay.app will show all projects, whose folder name starts with a number and a dot. This follows the publication method of Staceyapp. The convention is to use a date and the project name in the format YYYYMMDD.Project-name as shown in the Resource Folder screenshot above.

The contents of individual projects are reloaded continuously, and changes to project images and metadata will be reflected by AtriumDisplay.app without requiring a restart.