c-base has a set of information displays located around the station, showing various statistics, current events, and notifications.
These displays work by rendering different HTML screens loaded from a URL. The info displays each have their own rotation of URLs configured that they switch at frequent intervals. In addition it is possible to trigger a custom URL to be opened by a screen by sending it a MsgFlo message.
We have several implementations of the infodisplay software:
- browser infodisplay -- the primary implementation used by our static info displays, running in Chrome kiosk mode
- mqttwebview -- Python implementation mostly used as Linux screensaver in interactive terminals
- c-beam-viewer -- Android implementation for wall-mounted tablets
The standard MsgFlo signature provides an open
inport for sending new URLs for a display to open, and opened
outport to tell when a URL has been opened:
Most of our infodisplays are deployed using Ansible. You can find the configuration in c-flo repository.
The host_vars folder contains the per-display URL rotation configurations.
The URLs given here will generally only work inside the c-base member network.
- mainhall
- mainhall (with music)
- c-lab
- c-lab (with music)
- soundlab
- weltenbaulab
- weltenbaulab (with music)
- nerdarea
- nerdarea (with music)
- workshop
- workshop (with music)
- robolab
- robolab (with music)
- he2
There are also screens available from c-beam:
- upcoming events
- bar historical data
- bar status
- internet traffic
- alien alarm
- camera warning
- life support
There are also screens available from c-beam:
- sensors and AP stats
- today's events
- timehole status
- map of c-base
- open missions
- reddit posts
- artefact registry
- weather conditions
- public transport conditions
For visualizing textual information, there is the visual paging screen.
This is typically triggered by a MsgFlo participant, for example the boardingurl component.
Data visualization elements are built in ES6 with SkateJS and Plotly.
Screens are plain HTML that uses various data visualization elements.
The primary data source for building new information displays is the c-base OpenMCT installation powered by cbeam-telemetry-server. New MsgFlo participants can be configured to write there, making the data available for visualization.
In addition there are some APIs available in other systems like c-beam and the c-base website.
To fit in c-base, the screens should in general be dark and futuristic. You can find some common styling rules in c-base.css.
Most of our info displays are 1080 landscape monitors, but we also have other sizes (including portait) in use.
Because of this, all sizing and positioning on the screens should use viewport units (vh
, vw
, vmin
, vmax
). An info screen should utilize the whole screen area.
The screens are often seen from afar, so using bright colors and big text is advisable.
This repository is deployed on the c-flo
machine in /opt/infoscreens
. Deploy new version with:
$ git pull
$ npm install
$ npm run build