About Sterling
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.
Open Source
Sterling is released under the MIT License. Additionally, Sterling makes use of the following open source libraries in production and development.
Java
- 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.
JavaScript
- Typescript — A typed superset of JavaScript that compiles to plain JavaScript.
- React — A JavaScript library for building user interfaces
- Blueprint — A React-based UI toolkit for the web
- Redux — A predictable state container for JS apps
- Dagre — A JavaScript library used compute directed graph layouts.
- D3 — A JavaScript library for manipulating documents based on data.
Contributing
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.
-
Sterling - This is the web browser side of Sterling. It includes an API used to represent Alloy instances in JavaScript as well as all of the user interface and visualization code.
Authors
Currently the only author is me, Tristan Dyer. I’m a PhD candidate at North Carolina State University in the department of Civil Engineering, advised by John Baugh.