Skip to content
Simone edited this page Jul 1, 2020 · 43 revisions

MoonLight Build Status codecov

MoonLight is a light-weight Java-tool for monitoring temporal, spatial and spatio-temporal properties of distributed complex systems, as Cyber-Physical Systems and Collective Adaptive Systems.

It supports the specification of properties written with the Reach and Escape Logic (STREL). STREL is a linear-time temporal logic, in particular, it extends the Signal Temporal Logic (STL) with a number of spatial operators that permit to described complex spatial behaviors as being surround, reaching target locations, and escaping from specific regions.

MoonLightis implemented in Java, but it features also a MATLAB interface that allows the monitoring of spatio-temporal signals generated within the MATLAB framework. A Python Interface is under development.

Getting Started

First, you need to download JAVA (version 8) and set the environmental variable

JAVA_HOME= path to JAVA home directory

Then you need to get or generate the executable for Python or MATLAB.

First, you need to clone our repository

$ git clone https://github.com/MoonLightSuite/MoonLight.git

or download it (link).

Then you need to compile it by executing the following Gradle tasks in the console

$ ./gradlew clean
$ ./gradlew distribute
$ ./gradlew release

This tasks will generate a folder, named distribution, which contains three folders:

  • java: it contains the moonlight.jar
  • matlab: it contains all the necessary files to execute MoonLight from MATLAB and some examples
  • python: it contains all the necessary files to execute MoonLight from Python and some examples

Please, consider that every time you will execute these tasks, the distribution folder will be replaced with a new one.

For more information visit the dedicated sections: