Sterling combines Alloy with web-based visualizations, providing both basic Alloy visualization capabilities and a robust platform for the development of domain specific visualizations of Alloy instances.
The idea for a new visualization platform was born from the need to create domain-specific visualizations for models in the field of scientific computing, such as those used to represent finite element meshes and sparse matrices. Discussions at the 2018 Workshop on the Future of Alloy then sparked an interest in a web-based visualization platform. Initial ideas were put to the test in an experimental tool called Alloy Instances, which allows users to export XML files from Alloy and develop custom visualizations in the browser. The Alloy Instances tool provides a styling language and sharing platform that is useful for development of visualizations once a model has been completed, but it lacks in utility during the iterative modeling process.
Sterling aims to bridge this gap and further build out the visualization and sharing platforms.
Sterling is released under the MIT License. Additionally, Sterling makes use of the following open source libraries in production and development.
- Alloy — An open source language and analyzer for software modeling.
- Spark — A micro framework for creating web applications in Kotlin and Java 8 with minimal effort.
- Gradle Shadow Plugin — A gradle plugin for combining dependency classes and resources with a project into a single output Jar.
- Blueprint — A React-based UI toolkit for the web
- Redux — A predictable state container for JS apps
If you'd like to contribute in any way, head over to GitHub to fork the project. Sterling is split across two repositories:
Sterling + Alloy - This is the custom Alloy build that comes packaged with the Sterling interface. It includes minor updates to the Alloy user interface as well as the server code used to communicate with the browser.