This repository provides a minimal demonstration of the SUNRISE infrastructure.
SUNRISE stands for Scalable Unified RESTful Infrastructure for System Evaluation. It offers users a uniform approach to utilizing simulation technologies, typically, but not limited to the context of virtual prototyping. The goal is to facilitate access to diverse simulation solutions and boost cooperation by leveraging decentralized compute resources and defining open APIs.
For more information, take a look at the documentation and the publications listed below.
This project provides a comprehensive setup for all typical components within the SUNRISE environment:
- The 📁 runtime_manager subdirectory contains the implementation of a Server application that acts as SUNRISE Runtime Manager.
- The 📁 user_interface folder contains a demonstrator for a Front End in SUNRISE.
- In the 📁 demo_system directory, a very basic example of a system can be found.
Tip
The steps below describe how to use the demonstrator on individual environments. Alternatively, GitHub Codespaces can be used to run the demonstrator in a pre-configured cloud environment without any local setup. Use a GitHub account and click on the following link to open a codespace.
-
📋 Prerequisites:
- A Linux operating system
- The Docker runtime installed and running
- Docker Compose to orchestrate everything (usually included with Docker Desktop)
-
🛠️ Preparation
- Initialize submodule dependencies by calling
git submodule update --init. - Configure the ports on which the servers will listen in the .env-file.
- Configure the Docker socket that the Runtime Manager operates on in the .env-file. Hint: Call
docker context lsfrom a UNIX shell to identify your current docker socket.
- Initialize submodule dependencies by calling
-
▶️ Execution Steps (from a UNIX Shell)
First, build the Docker images:# Build the Docker images for all sub-components docker compose buildTo run the containers interactively:
# Start the Docker containers with an interactive shell (Use CTRL-C to stop and exit) docker compose -p sunrise_demonstrator up # Remove the containers completely to clean up docker compose -p sunrise_demonstrator rm -f
Alternatively, run the containers in the background:
# Start the Docker containers in detached mode docker compose -p sunrise_demonstrator up -d # Check the logs of the containers that run in the background docker compose -p sunrise_demonstrator logs # Shut down the containers docker compose -p sunrise_demonstrator down
Note: Only the
runtime_manageranduser_interfaceservices from the Docker Compose file are intended to run continuously. Thesystemservice will intentionally terminate directly. For the system, Docker Compose is only used to trigger the image build, which is then started later by the Runtime Manager. -
🌐 Accessing the User Interface
Once the containers are up and running, you can access the front-end through your web browser using the port you configured. The default address to access the UI is: http://localhost:9999.
A core goal of SUNRISE is to connect parties in the industry to improve efficiency in the domain of simulation. Therefore, we strongly encourage anyone interested to bring input to the project, preferably through code contributions.
Questions and requests can be raised via GitHub issues. Please see the contribution guide for further information on how to get involved.
This work is published under the Apache License 2.0.
Cite this work as defined in the included citation file.
Publications related to SUNRISE:
- Deployment of Containerized Simulations in an API-Driven Distributed Infrastructure, DVCon Europe 2024, https://doi.org/10.48550/arXiv.2506.10642
- Scalable Software Testing in Fast Virtual Platforms: Leveraging SystemC, QEMU and Containerization, DVCon China 2025, https://doi.org/10.48550/arXiv.2506.10624
- Cloud-Enabled Virtual Prototypes: Bridging Local and Remote Simulation, DVCon Europe 2025, https://doi.org/10.48550/arXiv.2510.15355
This work was initiated as a research project by Robert Bosch GmbH.