AToMPM is an open-source research framework for generating domain-specific modeling web-based tools that run on the cloud. AToMPM facilitates designing DSML environments, performing model transformations, and manipulating and managing models. It runs completely over the web, making it independent from any operating system, platform, or device it may execute on. AToMPM follows the philosophy of modeling everything explicitly, at the right level of abstraction(s), using the most appropriate formalism(s) and process(es), as it is completely modeled by itself.
Documentation for AToMPM can be found here: https://atompm.readthedocs.io/en/latest/. It includes an overview of AToMPM and a guide to creating and using modelling languages.
A portable .zip version of AToMPM is available for Windows. This portable version is intended for those users with limited installation capabilities. With this portable version, users can skip the below installation instructions.
Please check https://github.com/AToMPM/atompm/releases for the newest release, and download the atompm-portable.zip
file.
To run the portable version:
- Extract it to a directory on your machine
- Double-click on the
AToMPM.bat
file within the directory.
At https://github.com/AToMPM/atompm on the right-hand side under the heading "Packages", there should be a Docker container named atompm
. This container is automatically built when new AToMPM versions are created.
Usage instructions for connecting to this Docker container are in the packaging/docker
folder. There is also a Dockerfile
in that directory to build the container yourself.
To install AToMPM, follow these steps:
- Download and install the latest Python
- Python 2 is unsupported. Please use Python 3.
- Use a package manager on Linux or visit http://python.org/download/
- Download and install
python-igraph
- Use the pip package manager (comes with Python)
pip3 install python-igraph
- For Windows, you may need to install the compiled igraph core
http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-igraph
- Use the pip package manager (comes with Python)
- Download and install the
six
andpython-socketio
libraries- Use the pip package manager (comes with Python)
pip3 install six requests python-socketio python-socketio[client] websocket-client
- Use the pip package manager (comes with Python)
- Download and install
node.js
- Required version: >= 8.0
- Use a package manager on Linux or visit https://nodejs.org/en/download/
- Download and extract the source files for the newest AToMPM release from https://github.com/AToMPM/atompm/releases
- In that unzipped AToMPM folder, run the command
npm install
- If you do not need to run tests on AToMPM, you can run
npm install --production
- If you do not need to run tests on AToMPM, you can run
The commands below are for starting the AToMPM server. Note that the default port is 8124.
Once started, the server can be connected to by accessing http://localhost:8124/atompm in either the Firefox or Chrome browsers.
To run AToMPM on Windows, double-click on the run.bat
script inside of the main AToMPM folder.
- Execute
node httpwsd.js
in one terminal - Execute
python mt\main.py
in another terminal - Open a browser (Firefox or Chrome) and navigate to http://localhost:8124/atompm
- The above steps are automated by the
run_AToMPM_local.sh
script
Please create an issue for your bug or feedback here: https://github.com/AToMPM/atompm/issues. Pull requests are also welcome.
Any Javascript IDE/editor can be used to develop AToMPM. Current options include:
- https://code.visualstudio.com/ Free and open-source.
- https://atom.io/ Free and open-source
- https://www.jetbrains.com/webstorm/ Proprietary and non-free. Can obtain student license for free: https://www.jetbrains.com/community/education/#students
Follow the tool's documentation for setting up a new project and importing AToMPM's files.
Currently, there is no style guide for AToMPM code. In the future, the Prettier tool will most likely be used.
To run tests on AToMPM, run npm test
. Ensure that your resolution of your screen is set quite high, as elements cannot be placed by the script off-screen.
The AToMPM project is licensed under the LGPL as stated in COPYING.lesser.
AToMPM is copyright of the AToMPM team, which includes Raphael Mannadiar, Conner Hansen, Eugene Syriani, Hans Vangheluwe, Simon Van Mierlo, Huseyin Ergin, Jonathan Corley, Yentl Van Tendeloo, Vasco Sousa, and Bentley James Oakes