  Robotic applications require the integration of various modalities,
encompassing perception, control of real robots and possibly the control of
simulated environments. While the state-of-the-art robotic software solutions
such as ROS 2 provide most of the required features, flexible synchronization
between algorithms, data streams and control loops can be tedious. o80 is a
versatile C++ framework for robotics which provides a shared memory model and a
command framework for real-time critical systems. It enables expert users to
set up complex robotic systems and generate Python bindings for scientists.
o80's unique feature is its flexible synchronization between processes,
including the traditional blocking commands and the novel ``bursting mode'',
which allows user code to control the execution of the lower process control
loop. This makes it particularly useful for setups that mix real and simulated
environments.
