There are 3 main types that exists in Matrix's sdk:
A display receives a live stream of frames from core.
A player sends actions for a slot to core, an action is a button press/release event.
A software receives player's actions from core and use sdk's rendering features to generate frames in Matrix core.
Matrix components
Name
Description
Core
The heart of the Matrix system that managed software's lifecycle. All softwares, players and displays are connected to core.
Device
The component that interacts with usb controllers and Arduino.
Gamepad
A web application that contains a virtual controller with display.
Emulator
A web application built for development purpose. It displays Matrix main screen and player's screens.
Install
Matrix runs on a Raspberry Pi. On a Pi 2 or later there is a .deb in the
releases that installs a service starting
at boot; ARMv6 boards get an SD card staged by a script. Either way the Arduino has to be
flashed first.