Nodel is an open source digital media control system for museums and galleries.
It uses a series of nodes that perform "actions" or respond to "signals" to control various devices on a network, allowing quick and easy management of digital media devices.
Nodel is typically used to control digital media in galleries, museums, corporate meeting rooms and digital signage.
In short, Nodel can manage any programmable device across a wide range of platforms.
- It is simple to deploy, operate and maintain
- It runs on any operating system
- It runs on any browser including mobile devices
- Best of all, it is open source and free
Nodel is comprised of two parts - the platform and the recipes.
The platform or core system is written in Java and is the communication layer that allows nodes to interact with each other.
- It is one of the most portable and ubiquitous managed execution environments in the industry, running 3 billion devices worldwide
- It allows large numbers of nodes to be efficiently hosted with the smallest footprint
- It is a very mature and robust ecosystem
An active instance of the platform (aka. "nodehost") can manage any number of integrated media devices, or assistant tools (schedulers, monitors, groups) to form a coherent and manageable network of nodes.
These nodes are discoverable from other nodehosts on the same network, by which a series of user specified bindings allows the seamless propagation of remote actions and signals between a group of nodes.
Recipes are scripted in Python and are programmed to perform tasks, which might involve switching on a projector or playing a certain audio or video clip.
- It is equally ubiquitous in the industry with readily accessible documentation, libraries and source code
- It excels as a scripting environment both for heavy and lightweight tasks
- Short, succinct and neat code makes scripting a breeze
There are example available on the recipes repository.
The simple high-level nature of the Nodel protocol means aternative languages and environments can easily participate in the Nodel network as long as they come with a minimal set of networking functions.
A node is a self-managed, self-announcing, self-describing member of the subscription-based event-network. It's generated when a recipe sits inside the /nodes/node_name
folder of a nodehost.
A node might represent and manage:
- A physical device
- A virtual software component on the network
- Sub-components
Each node features:
- A simple high-level addressing scheme
- A simple messaging protocol using short, well defined, human-friendly message “packets”
- A means to fully query its behaviour points – i.e. actions and signals
- Automatic management of connections between nodes
- A native TCP terminal-like interface for simple low-latency programmatic control
- An HTTP/HTML interface for high-level as well as simple programmatic control
Nodes communicate with each other using a simple, open, language independent, text-based, human readable protocol written in JSON (JavaScript Object Notation) using the principles of REST (REpresentational State Transfer). Being text-based and human readable, commonly available tools such as Telnet and Notepad can be used to test and diagnose problems on a given network.
A node can run on any hardware which runs the Java Virtual Machine, which includes OS X, Windows and Linux based devices. As such, no proprietary hardware is required to install and run the system. This requires no complex and expensive infrastructure or servers to operate and allows a wide range of devices such as the cost-effective Raspberry Pi to be used in a control system design.
The platform-independent nature of Nodel also allows it to easily scale to suit your environment. Your organisation is not limited in the choice of hardware or software and the simplicity of the Nodel architecture makes it the ideal choice as a control system.
- Any operating system capable of hosting the Java 8 Runtime Environment – including OS X, Windows or Linux
- A current web browser
- Made for mobile
- download a release
- open a console
java -jar nodel.jar
- drop some recipes into
nodes
folder - check http://localhost:8085
- Latest releases can be found in github releases
- Can be easily built from scratch using these instructions
- thoroughly road tested with Java 8 (available from AdoptOpenJDK)
- for service / daemon use, see wiki pages
- check
bootstrap
files for startup config
- Platform - Mozilla Public License, version 2.0
- Recipes - MIT License
Nodel is a joint venture established between Museums Victoria and Automatic. It was imagined as a replacement for Museum Victoria’s gallery control system at the time.
You may find out more about the Nodel project on the White Paper.