Pycro-manager overview. The grey boxes denote the C++ and Java components of µManager, including the GUI, Java APIs, and a hardware abstraction layer that enables generic microscope control code to work on a variety of hardware components. The red box shows Pycro-Manager, which is built upon a high speed data transfer layer that can operate within a machine or over a network. This layer enables access to the existing capabilities of µManager as if they were written in Python. In addition, a new Acquisition API provides powerful automation of data collection combined with easy ways to inter-operate with Python libraries (purple boxes) for hardware control, data visualization, scientific computing, etc.