Skip to content

boschresearch/sunrise.demonstrator

Repository files navigation

SUNRISE Demonstrator

License

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.

SUNRISE components

Getting Started

Repository Structure

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.

Running the Demonstrator

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.

Open in GitHub Codespaces

  • 📋 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 ls from a UNIX shell to identify your current docker socket.
  • ▶️ Execution Steps (from a UNIX Shell)
    First, build the Docker images:

    # Build the Docker images for all sub-components
    docker compose build

    To 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_manager and user_interface services from the Docker Compose file are intended to run continuously. The system service 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.

Contributing

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.

License

This work is published under the Apache License 2.0.

Citing

Cite this work as defined in the included citation file.

Publications related to SUNRISE:

Acknowledgments

This work was initiated as a research project by Robert Bosch GmbH.

About

Demonstrator of the SUNRISE Infrastructure

Resources

License

Contributing

Stars

Watchers

Forks

Contributors