This is a stub repo for discussing a unified effort towards a GUI application for pymmcore-plus
& pymmcore-widgets
Goals
- Provide a napari-independent GUI for controlling micro-manager via pymmcore-plus (i.e. pure python micro-manager control). We'd like to have a primary application that we can point interested parties to (rather than having to describe all the related efforts and explain how to compose pymmcore-widgets directly).
- Avoid duplicate efforts. While independent related projects are excellent in that they allow rapid exploration and experimentation, we'd like to be able to share the results of these efforts. In some ways that is done via pymmcore-widgets, but all of the application level stuff (persistence of settings, complex layouts, coordination of data saving, viewing & processing) is explicitly not part of pymmcore widgets.
- Establish patterns for persistence and application state.
Non-Goals
- Working on a shared application is not meant to discourage independent experimentation and repositories. (One of the real strengths in doing this all in python is the ease of creating custom widgets and GUIs!). One possible pattern would be forks & branches off of a main central repository.
For now, this serves as place to store TODO issues and discussion items. Please open an issue if you are interested, (even just to say hi! 🙂)
An initial effort towards a pure python micro-manager gui based on the pymmcore-plus ecosystem was napari-micromanager. It uses napari as the primary viewer, and pymmcore-widgets for most of the UI related to micro-manager functionality. It still works and will continue to be maintained for the foreseable future, but we are also interested in exploring options that do not depend on napari.
One candidate to replace the viewing functionality provided by napari is ndv
, a slim multi-dimensional viewer with minimal dependencies. Two experimental efforts exist to build a micro-manager gui using ndv
micromanager-gui is a standalone application written by Federico Gasparoli (@fdrgsp), and currently lives in federico's personal org while we experiment with it.
pymmcore-plus-sandbox
is another experimental standalone GUI written by Gabe Selzer (@gselzer with input from @marktsuchida. One initial goal here is to create a main window that looks very similar to the java based MMStudio (which would make it familiar to existing users of the java ecosystem).
Willi Stepp (@wl-stepp) has been an active contributor to pymmcore-widgets and uses some of these widgets in his event-driven microscopy controllers.