Skip to content

pymmcore-gui

pymmcore-gui is a desktop application for controlling microscopes with the Micro-Manager core, written in Python. It's built from the other packages on this site (plus ndv for viewing images), and the goal is to provide a pure-Python replacement for Micro-Manager's Java GUI (MMStudio).

Name pending

pymmcore-gui is a working title. The application is usable today, but expect rough edges and frequent changes.

pymmcore-gui with the demo configuration, after snapping an image

Who it's for

pymmcore-gui is for people who want to use a microscope from a Python application the way they'd use MMStudio: load a configuration, look at the live image, set up a multi-dimensional acquisition and run it, without writing code. It's also a place to start if you're a developer who'd rather add a few panels to an existing application than build a GUI from scratch with pymmcore-widgets. You can add your own widgets, and script the running GUI from its built-in console.

pymmcore-gui or napari-micromanager?

napari-micromanager came first. It's a napari plugin built from the same widgets, in which images become napari layers. It's still maintained, but new development is going into pymmcore-gui, which uses ndv instead of napari (for performance, and to keep the dependencies down). If your analysis already lives in napari, napari-micromanager may suit you better; otherwise, start with pymmcore-gui.

What's inside

Component Role in the GUI
pymmcore-plus Device control and the acquisition engine (CMMCorePlus, MDAEngine).
useq-schema Describes the experiments you run: time-lapses, z-stacks, channels, well plates, grids, ...
pymmcore-widgets The panels: camera and stage control, property browser, acquisition setup, ...
ndv Fast, lightweight n-dimensional viewer for live and acquired images.

Features

  • Device control and configuration (including the Hardware Configuration Wizard)
  • Multi-dimensional acquisitions: time, z, channels, positions, grids, well plates
  • Real-time image preview and acquisition visualization (2D and 3D)
  • Customizable, dockable layouts
  • An integrated IPython console with access to the running core
  • Double-clickable application bundles for Windows and macOS

Next steps

To try it out, install pymmcore-gui (as a Python package or a bundled app), then see Using pymmcore-gui for launching it, its command-line options, and scripting it from Python. The API reference documents the parts you can build on.