Bubble: fast powder integration - pyFAI on steroids

Information and requirements

Bubble is a program for fast on-line powder integration for small and wide angle diffraction.

If you use this program please cite this paper: A new multipurpose diffractometer PILATUS@SNBL.

Bubble is open source software covered by the GPLv3 license.

Source code is freely available at the mercurial repositories:


The latest version

The latest version is 2018.11.8.1:

The compiled version of the bubble server bubbleg should always work, since it is statically linked against everything.

To run the compiled version of the Bubble client in Windows you need to install the MS Visual C++ Redistributable for Visual Studio 2015.

The linux version of the Bubble client is compiled in Debian 8, thus it should work in any rather new distribution. It will probably not work in CentOS or similar “conservative” distributions.


If you have installed Python 3.6 or 3.7 on your computer, you may install bubble client just using pip:

pip install PyQt5 bubble-dubble
On Windows you may need the MS Visual C++ Build Tools 2015 to compile the C-extensions.

The server still has to be downloaded from here, or it can be compiled it from the Go repository.





  • 2018.11.28
    • Bugfix: fix multicolumn files.
  • 2018.11.8.1
    • Support for new poni files from pyFAI-0.16
    • Bugfix: saving mask with ‘less’ or ‘more’ values does not crash the client after reopen.
    • Bugfix: when WAXS is not normalized, the background was not properly subtracted.
  • 2018.7.9
    • Hopefully, the final fix of crashes in Windows.
    • New mask: the saved mask file contains everything inside: both an image and ROIs which can be edited after load.
  • 2018.6.21
    • Fix various Windows related bugs.
  • 2018.6.8
    • Fix various client crashes.
  • 2018.6.7
    • Fixing various bugs in the Windows version;
    • Fixing bugs with spline correction;
    • Correct calculation of the error bars for patterns normalized by the background;
    • bubbleg can be run with option “-resize N”, where is a number to bin images by NxN pixels; it decreases the image size which are to be transferred over the network. By default N=1 in Linux and N=4 in Windows and MacOS.
  • 2018.3.7
    • Fixing issues with ellipsoidal mask in the client;
    • Bruker images;
    • Distortion correction for Frelon.
  • 2018.2.22
    • New integration server written in Go, thus, the features are not yet supported:
      • Spline files for Frelon-like cameras;
      • Brueker images;

      If you need these features, please use an older version. Everyting else should work as expected.

    • Bubble client shows the image after integration, which means, if radial or azimuthal limits are applied, then they will also be seen in the 2D plot;

    • Now it is possible to set both numbers of radial and azimuthal bins in the Options page, thus, bubble can save radially integrated patterns as a function of 2\Theta (Q), azimuthally integrated patterns as a function of \chi and 2D-Cake images in CBF format;

    • Recursive integration: the bubble server integrates in the parent directory and in all the internal directories;

    • There is no need anymore to do start/stop, if the directory is the same: bubble not just waits for new files, but it also checks if the older files have changed and integrates them accordingly.

    • Mar Image Plate image support;

  • 2017.10.22 (513b8fb114c6)
    • Bruker image support.
  • 2017.10.21 (7c24e8753ce8)
    • Updated UI.
    • Fine integration tuning on the server tab:
      • Number of bins;
      • Polarization correction;
      • Solid angle correction;
      • Double precision.
    • Client checks updates.
    • Minor bug fixes.
  • 2017.8.24 (70ff9f8e8d97)
    • If normalization is done not by monitor, then the Bubble does read the Flux value from the CBF header.
    • The options ‘Speed’ and ‘Super speed’ are applied on-line: there is no need to restart the integration process.
    • Minor bug fixes.