-
Notifications
You must be signed in to change notification settings - Fork 3
Home
MoonLight is a lightweight Java tool for monitoring temporal, spatial, and spatio-temporal properties of distributed complex systems, such 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.
MoonLight is implemented in Java, where it can be added as a dependency, but it features also a MATLAB interface (:warning: legacy) that allows the monitoring of spatio-temporal signals generated within the MATLAB framework. A new Python Interface is also available.
If you plan to only use Moonlight via python, refer to Python > Pip Package.
First, you need to clone our repository
$ git clone https://github.com/MoonLightSuite/MoonLight.git
or download it (link).
To generate the executable for Python or MATLAB, you need to compile it by executing the following Gradle tasks in the console
$ ./gradlew clean
$ ./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
🛑
For more information visit the dedicated sections:
Please note that Moonlight and its interfaces are still under active development.
In case of any problem, file a new issue on Github, or reach us directly on any communication channel!