Categorygithub.com/richardlt/matrix
modulepackage
0.0.0-20240106093139-01a19e393da4
Repository: https://github.com/richardlt/matrix.git
Documentation: pkg.go.dev

# README

 Matrix

Go Report Card

Video game console operating system that displays on a 16*9 RGB LED matrix.




Existing softwares

NameDescription
DemoA demo software that uses all drivers from the SDK.
YumyumEat all the candies with your monster to win the game.
ClockWhat time is it?
ZigzagTurn left then right, eat candies but not yourself.
DrawFor those who like pixel art.
DeviceThe Device software allows you to change the luminosity of the LEDs.
BlocksA puzzle game, score a maximum of points by clearing complete lines.
GetoutA labyrinth game, try to get out if you can.
Rollup diceRandom dice generator (https://github.com/gwenker/matrix-rollup-dice).
AnimatePlayer for animations generated with Glediator (http://www.solderlab.de/index.php/software/glediator).
LightSimple software to generate mood light.

Matrix types

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

NameDescription
CoreThe heart of the Matrix system that managed software's lifecycle. All softwares, players and displays are connected to core.
DeviceThe component that interacts with usb controllers and Arduino.
GamepadA web application that contains a virtual controller with display.
EmulatorA web application built for development purpose. It displays Matrix main screen and player's screens.

Production setup

Matrix is designed to run on a Raspberry Pi (at least model 3), it is composed by multiple softwares (core, device, gamepad...). All softwares can run on the Raspberry Pi but you can also start a software on your desk that will communicate remotely with the Matrix's core (with flag --core-uri).

Here are the few steps to install your own Matrix:

  1. Download Matrix latest release here. If you want to install it on Raspbian or Debian there is a .deb file available that will create a service to start Matrix automatically at boot.

  2. Extract/install and run Matrix package.

$ dpkg -i matrix.deb # for Raspbian/Debian users
$ service matrix status
$ unzip matrix.zip # for others
$ cd matrix-package && ./matrix-[REPLACE_DEPENDING_OS] start --log-level info --gamepad-port 80 core device gamepad emulator demo zigzag yumyum clock draw blocks getout # select the right executable depending on your os 
  1. Install firmware on the Arduino from file in Matrix source code (inside folder at ./device/firmware/firmware.ino). Source code can be downloaded from release.

Development setup (linux/darwin)

  1. Requirements.
  • Go (version 1.17+)
  • Node.js (with npm, version 16+)
  1. Install JS projects dependencies.
$ make install-all
  1. Run it.
$ go run main.go start --log-level info core gamepad emulator demo # you can start all other softwares by adding their names
$ (cd emulator && npm start)
$ (cd gamepad && npm start)
  1. Open emulator at http://localhost:3001 and/or gamepad at http://localhost:4002.

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author