This project includes the Aspect Model Editor and its documentation. As a user, download the Installer from https://github.com/eclipse-esmf/esmf-aspect-model-editor/releases .
Are you having trouble with Aspect Model Editor? We want to help!
- Check the developer documentation
- Check the SAMM specification
- Having issues with the Aspect Model Editor? Open a GitHub issue.
You can clone the repositories to run the aspect model editor. Feel free to contribute. If you want to run the aspect model editor from repositories, please ensure to clone and start the backend first.
Common prerequisites for all platforms:
- Node.js 22 (LTS) and pnpm (
npm install -g pnpm) - Rust & Cargo (stable toolchain, required for the Tauri desktop app)
- To generate Aspect Model documentation, the installation of GraphViz is required.
Platform-specific prerequisites for the Tauri desktop app (see also the Tauri prerequisites):
| Platform | Requirements |
|---|---|
| macOS | Xcode Command Line Tools: xcode-select --install |
| Linux | WebKitGTK and build tools, e.g. on Debian/Ubuntu:sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev patchelf |
| Windows | Microsoft C++ Build Tools (workload "Desktop development with C++") and WebView2 (preinstalled on Windows 10/11) |
First steps into the code: Code Overview
# enter the core directory where package.json is located
cd core
pnpm install
pnpm run startThe editor is then available at http://localhost:4200 and expects a running backend on port 9090.
The desktop app bundles the backend as a jpackage app image. Release builds take it from the platform-specific folder in the repository root:
| Platform | Folder | Expected content (from the backend release) |
|---|---|---|
| macOS | backend/macos/ |
ame-backend-<version>-mac-<arch>.app (extracted from *-mac-arm64.tar.gz on Apple silicon or *-mac-x64.tar.gz on Intel) |
| Linux | backend/linux/ |
ame-backend-<version>-linux/bin/... (extracted from *-linux.tar.gz) |
| Windows | backend/windows/ |
app image containing ame-backend*.exe (extracted from *-win.zip) |
The folder is only needed for release builds (pnpm run build:tauri), which fail with a hint if it is missing.
They add it as bundle resource via core/src-tauri/tauri.bundle-backend.<os>.conf.json (see core/utils/tauri-build.mjs) and start the bundled backend automatically.
Use this script instead of tauri build directly, otherwise the backend is missing in the app.
In development mode (pnpm run start:desktop) the folder is not required and the bundled backend is not started; the app expects a backend that you started yourself on port 9090.
To run the desktop application in development mode (starts the Angular dev server and the native Tauri window with hot reload). The command is the same on macOS, Linux and Windows:
cd core
pnpm install
pnpm run start:desktopMake sure the backend is running on port 9090 before working with models (see above).
Desktop packages must be built on the target platform (no cross-compilation). The command builds the Angular production bundle and the Tauri app in one step:
cd core
pnpm run build:tauriOn Linux the script sets NO_STRIP=true, because the strip bundled with the AppImage tooling fails on libraries of current distributions.
The bundles for the current platform are written to core/src-tauri/target/release/bundle/:
| Platform | Output |
|---|---|
| macOS | macos/Aspect Model Editor.app and dmg/Aspect Model Editor_<version>_<arch>.dmg |
| Linux | appimage/*.AppImage and deb/*.deb |
| Windows | nsis/*-setup.exe (per-user NSIS installer) |
The backend app image contains its own Java runtime and therefore matches the processor architecture: use the mac-arm64 backend for Apple silicon builds and the mac-x64 backend for Intel builds.
Unsigned macOS builds may be blocked by Gatekeeper. Remove the quarantine flag with
xattr -rd com.apple.quarantine "/Applications/Aspect Model Editor.app".
On Linux (AppImage and .deb) the app sets WEBKIT_DISABLE_DMABUF_RENDERER=1 at startup, because the DMA-BUF renderer of WebKitGTK shows a blank window with several GPU drivers (e.g. NVIDIA, virtual machines). An explicitly set value is kept.
If the window still stays blank or flickers, start the app with WEBKIT_DISABLE_COMPOSITING_MODE=1 (slower rendering), e.g. WEBKIT_DISABLE_COMPOSITING_MODE=1 ./Aspect-Model-Editor.AppImage.
The workflow .github/workflows/tagged_release.yml (manually started with the release version) creates the release.
The backend release with the same version must exist before (repository esmf-aspect-model-editor-backend of the same owner, so a fork uses the backend release of the fork).
-
preparesets the documentation version, creates the branch<major>.<minor>.x, the tagv<version>and a draft release. Release candidates (e.g.2.3.0-rc1) become a pre-release. -
buildbuilds the app on every platform with the matching backend and uploads it to the draft release:Runner Release assets ubuntu-latestaspect-model-editor-v<version>-linux-glibc-v<glibc>.AppImage,aspect-model-editor-v<version>-linux-amd64.debmacos-15-intelaspect-model-editor-v<version>-mac-x64.dmgmacos-latestaspect-model-editor-v<version>-mac-arm64.dmgwindows-latestaspect-model-editor-v<version>-win.exe(workflow artifact only, signed and uploaded by Jenkins) -
publishpublishes the release and triggers the Jenkins job which signs the Windows installer. The Jenkins job is only triggered in the repositoryeclipse-esmf, so the workflow can be tested in a fork.
cd core
# Run all E2E tests headless
pnpm run e2e
# Run with interactive UI
pnpm run e2e:ui
# Run headed
pnpm run e2e:headedThe documentation can be found in the root directory under the path documentation.
SPDX-License-Identifier: MPL-2.0
This program and the accompanying materials are made available under the terms of the Mozilla Public License, v. 2.0.
The Notice file details contained third party materials.
To build a native image we use GraalVm: GraalVm