Skip to content

micss-lab/SpatialDSLStudio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpatialDSL Studio

CI Deploy Health Check

University of Antwerp

Developed at the MICSS (Modeling Intelligent Complex Software and Systems) lab
AnSyMo (Antwerp Systems and Software Modeling) group
University of Antwerp

Metamodel Design

3D Diagram Design

Overview

A full-stack model-driven engineering platform for designing domain-specific languages and working with models end-to-end.

Live demo: https://dsl-studio.micss-lab.be

You can:

  • Define metamodels (classes, attributes, references, constraints)
  • Import and export common EMF Ecore metamodels and XMI instance models
  • Create models that conform to those metamodels
  • Define Sirius-style viewpoints and diagram representation descriptions
  • Project models into 2D and 3D views
  • Define metaclass-level fallback notation and representation-specific notation overrides
  • Define transformation rules (LHS/RHS/NAC)
  • Build code generation projects with templates
  • Manage access with roles and resource sharing

SpatialDSL Studio is Sirius-inspired, not a drop-in replacement for Sirius Desktop projects. Ecore/XMI semantic interchange is supported with limits; an initial .odesign validate/import/export subset covers basic diagram descriptions and returns compatibility reports, and an initial .aird import subset turns Sirius diagram representations into SpatialDSL views (.aird export is not implemented). See Sirius Desktop Compatibility.

Multi-Layer Architecture

Spatial DSL Studio implements a multi-level modeling architecture based on Model-Driven Engineering principles (MOF). The application provides tools for defining metamodels, creating conforming models, visualizing them in both 2D and 3D spaces, applying model transformations, and generating code from models.

The tool follows a four-layer architecture:

  • Meta-Metamodel Level (M3): Core language definition. Metamodels must conform to meta-metamodels
  • Metamodel Level (M2): Domain-specific languages defined as instances of the meta-metamodel
  • Model Level (M1): Concrete models conforming to their metamodels
  • View Level (M1): 2D and 3D projections of model content
  • Code Generation Level (M0): Auto code generation from the designed models(Template-based)

Tech Stack

  • Frontend: React + TypeScript + Material UI
  • Backend: Node.js + Express + TypeScript
  • Database: PostgreSQL + Prisma ORM
  • Visualization: Konva (2D) and Three.js / React Three Fiber (3D)
  • Deployment: Docker Compose (frontend + backend + database)

Repository Structure

  • frontend/ - React application, editors, dashboards, user workflows
  • backend/ - Express API, business services, auth, RBAC, sharing
  • shared/ - Shared type contracts used by frontend and backend
  • docker-compose.yml - Full-stack container orchestration

Quick Start

Option A: Docker (recommended)

docker compose up --build

The Docker backend applies Prisma migrations before it starts. Development Docker also runs the seed script by default; set ADMIN_EMAIL and ADMIN_PASSWORD in the root .env if you want that seed to create or promote an admin account. The seed can also create a pre-verified demo account (no email verification step) via DEMO_EMAIL and DEMO_PASSWORD, with an optional DEMO_ROLE (defaults to DSL_DESIGNER). Seeded accounts are marked email-verified, so they work without a reachable mailbox; this is the intended path for reviewers and offline demos.

Then open:

  • App: http://localhost:3000
  • API: http://localhost:3002

Option B: Local development

Run backend and frontend in separate terminals:

# backend
cd backend
npm ci
npm run dev

# frontend
cd frontend
npm ci
npm start

For complete setup requirements (database, env vars, migrations), see the getting started docs.

Documentation

Start Here

Getting Started

User Guides

Technical References

License

This project is licensed under the MIT License, see LICENSE.

About

SpatialDSLStudio is a web-based application for creating domain-specific languages (DSLs) and visual modeling environments with 2D and 3D support.

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages