Working with backends

One of the driving principles of COMPAS framework is to create an ecosystem and serve as an interface between different front-ends (e.g. CAD software) and back-ends.

In the case of COMPAS FAB, it provides access to multiple robotic platforms as backends. This chapter highlights the available ones and explains how to obtain them and set them up.

Installing backends

Backends can be installed in different ways. Some backends are very simple to install, while others are very complex.

In order to simplify working with these tools and have a consistent way to use and test different backends, COMPAS FAB provides them as Docker containers. Docker containers are a way to bundle systems into isolated, standarized software units with full reproducibility. It greatly reduces the time it takes to get a backend up and running.

However, all of them can be installed without Docker as well. Please refer to the documentation of the respective tool for standard installation instructions.

Installing Docker

Download and install Docker Community Edition:


Make sure you have enabled virtualization in your BIOS. Docker will complain if not.


If you’re a Windows user, you will need at least Windows 10 Pro.

Working with containers

For Visual Studio Code users, we recommend installing the Docker extension.

Alternatively, install Kitematic to have a visual overview of the running containers:

Running GUI apps

When using Docker or WSL to run backends, there is no visible graphical user interface (GUI). Although not entirely supported in either platform, it is possible to visualize the GUI anyway.

First install an X11 server:

Configure X11 security:

  • On Windows, add your IP address to the file %ProgramFiles(x86)%\XMing\X0.hosts. It needs to be opened as administrator.

  • On Mac, run xhost +local:root. Remember to disable later with xhost -local:root.

Finally, set the DISPLAY variable -either inside Docker or WSL- to point to your X11 server, e.g.:

export DISPLAY=

Next steps

Check documentation for your backend of choice: