scenic-core

4.0.10 • Public • Published

Scenic Core

Scenic Logo

Scenic is a stage teleconference system that allows for real-time transmission of audiovisual and arbitrary data over any IP network. Telepresence systems can be used in various artistic contexts, so that two different creative spaces can communicate with each other or present a combined performance. Scenic Core is a rewrite and improvement of the previous Scenic software.

Scenic Core is a web server which can be used with a compatible user interface using WebSocket commands. The Scenic graphical user interface can be downloaded separately from its source. As part of the Scenic stack, Scenic Core acts as a bridge and gatekeeper between Switcher (telepresence engine) and Scenic.

Scenic Core is currently developed by the Société des Arts Technologiques [SAT], a non-profit artistic entity based in Montreal, Canada. The current version of Scenic Core has been tested with Ubuntu 20.04.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Dependencies

Name Version Command Description
Git latest sudo apt install git Distributed version control system used to get Scenic Core source code
NodeJS == 10 See NodeJS installation instructions JavaScript runtime which helps to build the Scenic engine
NPM >= 6.14.4 Included with the NodeJS installation JavaScript package manager used to build internal dependencies
libicu-dev latest sudo apt install libicu-dev Development library for handling of unicode characters
Shmdata latest See Shmdata documentation Library to share flows of data frames between processes via shared memory
Switcher == 2.1.41 See Switcher documentation C++ engine allowing the streaming of data over IP networks
Node-Switcher latest - NodeJS add-on to allow communication Switcher. Will be automatically installed with Scenic Core

WARNING: Scenic Core is NOT compatible with Switcher version 2.2 and and upwards.

Installation

Install from NPM

Install the npm package globally:

npm install -g scenic-core

Install from Source

Your default g++ compiler must be 8.0 or greater. (sudo apt install g++-8 on ubuntu)

Step Command
Clone the Scenic Core repository git clone https://gitlab.com/sat-mtl/tools/scenic/scenic-core.git
Move into Scenic Core folder cd scenic-core
Build the application make build
Install the application sudo make install

Node-Switcher Add-On

The NodeJS add-on for Switcher, which was once part of Scenic Core, has been moved to its own repository and renamed Node-Switcher. It is specified as a dependency of Scenic Core in its package.json, and will therefore be automatically installed with the server.

Usage

Starting the Server

scenic --help # display all scenic options
scenic-core [options]

Options:
  -l, --logLevel  Set the log level  [choices: "error", "warn", "switcher", "debug", "info", "verbose", "scenic"] [default: "switcher"]
  -p, --port      Set a specific port for websocket connections                                                [number] [default: 8000]
  -S, --savePath  Override default Scenic save file directory             [string] [default: "/home/scenicbox/Documents/Scenic/Scenes"]
  -L, --logPath   Override default log directory                    [string] [default: "/home/scenicbox/.local/state/scenic-core/logs"]
  --version, -v   Show version number                                                                                         [boolean]
  --help, -h      Show help                                                                                                   [boolean]

By default, Scenic Core is publishing all its logs into the directory defined by the XDG_STATE_HOME variable. It writes all logs from:

Program source Folder destination
Internal logger ${XDG_STATE_HOME}/scenic-core
Switcher ${XDG_STATE_HOME}/scenic-core
Scenic client ${XDG_STATE_HOME}/scenic

Starting the Server for Debug with gdb

scenic-debug # start pre-configurated gdb script

Docker deployment

To setup Scenic using Docker, follow the instructions in the Docker usage page.

Development information on Docker images build system is available on the Docker build page

Technologies

Scenic Core is a custom assembly of ExpressJS and Socket.io, using NodeJS 10.20.1. It uses a NodeJS add-on to communicate with Switcher and the WebSocket protocol to communicate with Scenic.

The SAT uses Ubuntu 20.04, so testing priority is given to this version.

Contributing

Check out our Contributing Guide to get started!

Versioning

SemVer is used for versioning. For the versions available, see the tags on this repository.

Authors

See here.

License

This project is licensed under the GNU General Public License version 3 - see the LICENSE file for details.

Acknowledgments

This project was made possible by the Société des Arts Technologiques [SAT].

Package Sidebar

Install

npm i scenic-core

Weekly Downloads

1

Version

4.0.10

License

GPL-3.0

Unpacked Size

538 kB

Total Files

126

Last publish

Collaborators

  • vlaurent
  • flecavalier
  • scenic-dev