OMPL Web App


The OMPL web app is a web front end for motion planning and benchmarking using OMPL. Basic usage is very similar to the standalone GUI. Since you only need a web browser, this may be the easiest way to try out OMPL without having to install or compile anything. Detailed instructions on how to use the site are available on the site itself (click on “About” in the top right).

One of the cool features of the OMPL web app is that you can configure and run motion planning benchmarks on our server. Once you have configured a motion planning problem, you can specify that this problem should be solved by various different planning algorithm. The results will be computed in the background and passed on to Planner Arena, a server that is designed for letting you explore interactively the results of motion planning benchmarks.

Deploying the OMPL Web App Locally

It is possible to run the OMPL web app locally, i.e., run the web server on your own machine. The instructions below have been tested on Ubuntu Linux.

  1. Compile and install (including its Python bindings).
  2. Install the Python Flask and Celery packages:
     sudo apt-get install python-pip
     pip install flask
     pip install celery
  3. Install RabbitMQ (the daemon is automatically launched upon install):
     sudo apt-get install rabbitmq-server
  4. Run the OMPL web app:

On macOS, the following steps get the Web App can be installed and launched using Macports with these commands:

sudo port install ompl +app
sudo port load redis


The OMPL web app is also available as a set of Docker containers. The easiest way to download and run everything you need is as follows:

 docker-compose -f omplwebapp.yml up

Next, open in your browser. This also launches Planner Arena, which you can access at

JavaScript Libraries Used by the OMPL Web App

Library License Distributable
jQuery MIT Yes
blockUI (jQuery plugin) MIT and GPL Dual License Yes (under MIT)
Bootstrap MIT Yes
TrackballControls MIT (part of THREE.js) Yes
ColladaLoader MIT (part of THREE.js) Yes