PixInsight 1.8.8-6 Released

Juan Conejero

PTeam Member
Sep 2, 2004
Valencia, Spain
Hi all,

I am glad to announce a new version of the PixInsight core application: 1.8.8-6. This is an important maintenance release providing bug fixes, new features and stability improvements on all platforms.

Installation packages for PixInsight 1.8.8-6 are now available to all licensed users for Linux, macOS and Windows:


A FreeBSD version is still not available. It will be available during the next weeks.

As happens with all updates to the PixInsight core application, this version cannot be downloaded as an application update. You have to install version 1.8.8-6 manually:
  • FreeBSD and Linux: The installation packages are xz-compressed tar archives (.tar.xz). To install one of these archives, just extract its full contents on any directory, preferably on one located under your home directory. Then become root and run the installer program from a terminal. Normally you should just type "yes" and press Enter to accept the default settings. Say './installer --help' for detailed information on command line arguments.

  • macOS: If you have a previous version of PixInsight already installed, you must uninstall it by moving the /Applications/PixInsight folder to trash (also known as bin on macOS 10.15). Run the .pkg installation package and follow the instructions. All our macOS installation packages are digitally signed with our corporate certificate and have been notarized by Apple.

  • Windows: If you have a previous version of PixInsight already installed, please uninstall it from Control Panel or Add or Remove Programs. Then run the installation package for version 1.8.8-6 and follow the instructions. All executable files in the PixInsight distribution for Windows, as well as our installation packages, have been signed with our EV code signing certificate.
If you have version 1.8.6, 1.8.7 or 1.8.8 already installed, this new version does not require a license reactivation. If you are still using a 1.8.5 version or older, see the official 1.8.6 version announcement for a detailed description of our new licensing system. See also FAQ 2.10 for additional information on license reactivations.

Main Improvements

This version is a maintenance release focused on performance and stability improvements, paving the way towards PixInsight 1.8.9. Version 1.8.8-6 fixes most confirmed bugs since the initial 1.8.8 release, and provides some relevant new features. A partial list follows with the most important changes.

ImageCalibration: Improved CFA Data Management

The following new parameters are used by the ImageCalibration process to modify its behavior for calculation of master dark frame optimization factors and master flat scaling factors:

* New Enable CFA parameter. Enable this option to support data acquired with digital cameras that generate images mosaiced with a Color Filter Array (CFA). Bayer and X-Trans CFAs are supported. When this option is selected, the CFA pattern can be selected with the CFA mosaic pattern parameter (see below). You normally should leave that parameter with its default Auto selection, which should detect the correct pattern automatically under normal working conditions.

* New CFA mosaic pattern parameter. This is the CFA pattern of the camera (such as a DSLR or OSC camera) used to acquire the calibration master and target frames. The Auto option uses view properties that can be available in the master and target frame files. Under normal working conditions, these properties are either generated automatically by the RAW format support module and stored in XISF files, or available as FITS header keywords in the case of raw OSC frames. For non-CFA data acquired with monochrome CCD or CMOS cameras, the Auto option is the correct selection because in these cases the process will detect no CFA pattern automatically. For images acquired with X-Trans sensors this parameter is ignored and CFA patterns are always extracted from existing image properties.

* New Separate CFA flat scaling factors parameter. When this option is enabled and the master flat frame is a single-channel image mosaiced with a Color Filter Array (CFA), such as a Bayer or X-Trans filter pattern, three separate master flat scaling factors are computed for the red, green and blue CFA components, respectively. When this option is disabled, a single scaling factor is computed for the whole master flat frame, ignoring CFA components (which has been the behavior of ImageCalibration until the 1.8.8-6 release).

The following changes improve robustness to potentially wrong preferences settings and provide higher compatibility with a variety of image acquisition applications:

* New default input hints: "fits-keywords normalize raw cfa signed-is-physical".

* New default output hints: "properties fits-keywords no-compress-data no-embedded-data no-resolution".

StarAlignment: Stability and Performance Improvements

* Better local distortion correction. The local distortion correction algorithm has been reimplemented for enhanced robustness, speed and accuracy.

* Bugfix: Crash in generation of recursive surface subsplines. Under some unlikely conditions, generation of recursive surface subsplines entered an infinite loop, exhausting all of the stack space available, and leading to a severe application crash. This has been fixed. See the original bug report.

ImageIntegration: New Features and Performance Improvements

* New two-sided scale estimators. Most of the scale estimators used in previous versions, including percentage bend midvariance, Rousseeuw/Croux's Sn and Qn, and IKSS, have been dropped. The new set of scale estimators is: average absolute deviation from the median, median absolute deviation from the median (MAD), and the square root of the biweight midvariance (BWMV).

All of these algorithms have been implemented as two-sided (or bilateral) estimators. A two-sided scale estimator computes separate statistical scale estimates for low and high data points. In the case of image integration, low and high pixels are, respectively, those pixels having values smaller than and higher than the median of the corresponding sample (either the whole image, a subset of image pixels, or a pixel stack, depending on specific applications). Two-sided scale estimators are much more accurate and adaptive for image normalization, since they are able to characterize skewed and asymmetric distributions. The main result of this change is more robust and efficient pixel rejection and image normalization.

* New Adaptive Normalization algorithm. This new algorithm can be applied to both pixel rejection and output normalization. Adaptive normalization applies per-pixel additive/scaling normalization functions, computed by surface spline interpolation from matrices of location and two-sided scale estimates calculated for each integrated image. This algorithm is an alternative to local normalization that does not require auxiliary files.

Adaptive normalization is intended to solve the same problems for which local normalization has been designed: data with strong local variations, especially strong gradients of varying orientations and intensities. Although local normalization is much more accurate and can be necessary to solve difficult problems, adaptive normalization is much easier to use and works remarkably well in many practical cases. The main benefits of this new algorithm are: more efficient pixel rejection under difficult conditions, and substantial simplification of gradients in the output integrated image. Adaptive normalization has also been implemented in the DrizzleIntegration process, and the associated data is now stored in .xdrz files.

* Improved ESD pixel rejection. The generalized ESD (Extreme Studentized Deviate) algorithm imlementation is now much faster, solving an important performance bottleneck present in previous versions. ESD runs now essentially at the same speed as Winsorized sigma clipping. Thanks to Mike Schuster for pointing out this problem just in time for the final 1.8.8-6 release.

* Faster statistics calculations. Thanks to a redesign/reimplementation of critical statistics calculation routines, the initial statistics calculation phase of ImageIntegration is now significantly faster.

* Automatic limitation on the number of concurrent threads. On systems with limited memory resources (relative to the amount of integrated data and to the number of processor cores available), ImageIntegration may decide to reduce the number of threads executed concurrently during several phases of the image integration process. This affects mainly the initial statistics calculation phase and the analysis phase used for large-scale pixel rejection. With this new feature we are trying to improve the behavior of ImageIntegration, not only on machines with scarce resources, but also on machines with a large number of processor cores (such as 32/64 cores and 64/128 threads) used to integrate large images such as 60 Mpx frames, which are becoming usual.

* The subtract pedestals parameter is now disabled by default, solving some important data reduction pitfalls detected in previous versions.

* New default input hints: "fits-keywords normalize raw cfa signed-is-physical", for improved compatibility and robustness to potentially wrong preferences settings.

* Bugfix: Automatic calculation of integration buffer sizes on Linux. Previous versions didn't account for memory used by the Linux kernel to allocate disk cache buffers, resulting in a growing decrement of the available memory as seen by the ImageIntegration process. This has been fixed.

DrizzleIntegration: Adaptive Normalization Support

* New Enable adaptive normalization parameter.
For input drizzle files that provide adaptive normalization data, apply adaptive normalization for output instead of the default scale + zero offset global normalization. Local normalization always has precedence over adaptive normalization, so this option will be ignored for drizzle files that have been associated with local normalization data files (.xnml) if the Enable local normalization option has been selected. Adaptive normalization allows you to enjoy easy-to-use simplification of gradients also in drizzle-integrated images.

* New default input hints: "fits-keywords normalize raw cfa signed-is-physical", for improved compatibility and robustness to potentially wrong preferences settings.

PixelMath: New iswitch Function, Code Optimization, Redesigned User Interface, Open-Source

* New iswitch function.
PixelMath's new multiple conditional function, or inline switch function, can be formally described as follows:

iswitch( cond_1, expr_1[, cond_2, expr_2[, ..., cond_n, expr_n]], expr_default )

Returns expr_1 if cond_1 evaluates to nonzero;
otherwise, returns expr_2 if cond_2 evaluates to nonzero;
otherwise, returns expr_n if cond_n evaluates to nonzero;
otherwise, if all cond_i evaluate to zero (1 ≤ i ≤ n), returns expr_default.

The iswitch function is useful to simplify decision trees that previously had to be coded using nested instances of the iif function. For example, the following PixelMath expression:

iif( $T < 0.5, x,
   iif( $T < 0.6, y,
      iif( $T < 0.75, z,
         iif( $T < 0.9, t, $T )
can now be written as:

iswitch( $T < 0.5, x,
         $T < 0.6, y,
         $T < 0.75, z,
         $T < 0.9, t,
         $T )
which runs faster (especially with the new code optimization feature) and is much more readable and manageable.

The iswitch function is an invariant subexpression when all specified arguments are either immediate numeric values or invariant subexpressions.

* New code optimization feature. The PixelMath runtime engine implements now special logical and branch instructions internally to execute faster conditional functions and logical operators. Code optimization works by minimizing execution of unnecessary subexpressions, which can lead to a significant increase in the execution speed of iif and iswitch inline conditional functions, as well as logical operators through short-circuit evaluation, among other critical PixelMath language constructs. The performance benefits can be substantial for complex PixelMath expressions.

* Redesigned graphical user interface. The single-line edit controls used in previous versions have been replaced with integrated code editor controls organized into a tabbed parent control.

This allows you to write PixelMath expressions using multiple text lines with arbitrary code indentation and comments. For example, now you can write the following:

$T /* this is the target image */
+ /* this is to add something */
(sorry for the trivial comments). Of course, the above expression will work just like "$T+0.1", but the best part is that your PixelMath code will be preserved exactly as you have written it, including all indentations, extra spaces and comments that you can use to make it more readable and understandable. An additional Symbols editor tab is also available, where you can also write your symbols using multiple text lines. Finally, to allow you inspect the whole set of PixelMath expressions defined for all channels (RGB/K or R,G,B plus alpha) and all symbols at the same time (as in previous versions), a read-only Summary tab has also been included.

* Released as open-source. The entire source code of the PixelMath tool is now available under PCL license at our official open-source repositories.

DynamicPSF: New Variable Shape PSF model, New Flux and Mean Signal Estimates, New Goodness-Of-Fit Estimates

* New variable shape (VarShape) PSF model.
We define the elliptical variable shape function as

where B is the local background estimate, A is the amplitude (maximum function value estimate), (x0,y0) are the centroid image coordinates, σx and σy are the standard deviations of the PSF distribution along the X (major) and Y (minor) axes of the ellipse, respectively, and β is a shape parameter controlling the function's kurtosis:
  • When β = 2 the function is Gaussian (normal distribution)
  • When β < 2 the function is leptokurtic (peaked profile)
  • When β > 2 the function is platykurtic (flat profile)

Variable shape function profiles for different values of the β shape parameter.

Moffat function profiles for different values of the β shape parameter.

As usual, rotated functions are fitted by replacing x and y input coordinates by their rotated counterparts:

where θ is the rotation angle of the X (major) axis of the ellipse measured in counter-clockwise direction. As you can see in the function definition, fitting this function is particularly difficult because β masks other parameters (e.g., β is indistinguishable from σx and σy for function fitting, which leads to high uncertainty). These problems have been overcome in our implementation, providing robust and accurate variable shape PSF fits.

The full width at half maximum in sigma units for a variable shape function is given by:

In many practical cases, variable shape model functions lead to optimal PSF fits in terms of minimization of absolute deviation between fitted point spread functions and sampled image pixel values for each selected source. Another advantage of variable shape functions is that they provide continuous variation of function profiles where the Gaussian PSF is just a particular case with β = 2. Finally, fitted variable shape function parameters can be used directly to define a parametric PSF in the Convolution, Deconvolution and RestorationFilter tools.

* New Automatic VarShape fits parameter. When the Auto PSF model is selected and this option is enabled, variable shape functions are included to search for optimal PSF fits. If this option is disabled, only Gaussian and Moffat functions will be used when Auto is selected. Since variable shape PSF models are nonstandard and relatively experimental, they are not included in automatic optimal fits by default.

* New flux estimates. For a given fitted PSF model F with local background B, the flux estimate is the scalar

where I is the sampled image and r is the sampling rectangular region. Assuming that there are no significant outliers within the sampling region (which can be assessed from goodness-of-fit estimates), the flux estimate can be used as a robust measure of relative brightness for the source being fitted.

* New mean signal estimates. Under the same conditions described for the flux estimate, the mean signal estimate is given by:

* Improved goodness-of-fit estimates. These estimates allow us to quantify the quality of each PSF fit. In the new version of the DynamicPSF tool, they are computed as follows:

where N is the area of the fitting region r in square pixels and the indicator function is

where l, m and h are, respectively, the 10th percentile, the median, and the 90th percentile of the set of computed absolute differences between sampled image pixel values and PSF function values (i.e., the term between absolute value bars in the MAD equation above). Rejecting values below and above the 10th and 90th percentiles makes this estimator sufficiently robust without sacrificing most of the efficiency of the mean absolute deviation. Note also that goodness-of-fit estimates are now scaled by the mean signal computed for each fitted source.

StarNet: Now Included in the Standard PixInsight Distribution

The excellent StarNet module, written by PTeam member Nikita Misiura, is now part of the official PixInsight distribution on Linux, macOS and Windows.

The new StarNet module is a complete revision of the original code with the following main new features:
  • When the Create star mask option is selected, the StarNet process replaces the target image with a starless version and generates a star mask (which is the difference between the original and starless images) as a new image window.

  • Neural network weights databases can be located at arbitrary locations (but they can be downloaded automatically; see below). They can be selected manually (by clicking the Preferences tool button, wrench icon) and their file paths are remembered across PixInsight sessions.

  • The neural network databases are now available as a regular application update through the standard update-db repository at pixinsight.com. After installing this update, the database files will be located on the library distribution directory:
Linux: /opt/PixInsight/library​
macOS: /Applications/PixInsight/library​
Windows: C:\Program Files\PixInsight\library​
  • With this initial release we have included the CPU-only version of the TensorFlow libraries for Linux and Windows. We are considering the possibility of creating a new repository to distribute GPU-enabled versions of TensorFlow as an optional update for these platforms. Note that, unfortunately, there are no GPU versions of TensorFlow for macOS. We'll keep you informed about this.

  • The StarNet PixInsight module has been released as an open-source product under Attribution-NonCommercial-ShareAlike 4.0 International Creative Commons license (CC BY-NC-SA 4.0). Its source code is available at our official GitLab repositories.

FITS: Support of ROWORDER keywords

The new version of the FITS format support module interprets existing ROWORDER keywords to define the vertical orientation of the image. When a ROWORDER keyword is present and this option is enabled, its value will be used to override the default coordinate origin and vertical orientation defined in FITS Format Preferences. The nonstandard ROWORDER keyword is being generated by a number of image acquisition applications.

Please note that we are making an exception to our customary development rules here. The FITS format has been deprecated in PixInsight, so nobody should expect new features implemented in our FITS module, except as strictly necessary to support vital new elements defined by new versions of the FITS standard. We are making this exception in the hope that it will help fix most practical FITS orientation issues, which is an important interoperability problem. By supporting it, hopefully we'll be able to solve most practical FITS orientation issues.

RAW: Integration of LibRaw 0.20 Release

The new version of our RAW format support module integrates the just-released LibRaw 0.20 Release. This means that we now support all of the camera models supported by the latest version of LibRaw, and provide all of its security and stability improvements. Besides this, there are no significant changes with respect to the version included in the previous 1.8.8-5 version of PixInsight.

ImageSolver Script version 5.4.7

* Bugfix:
Undefined 'rms' property error if no valid stars are detected in ImageSolver.DetectStars(). This was causing problems for automated applications of the ImageSolver script (e.g. the PCC tool or the Astrobin+PixInsight collaboration).

* PixInsight core version ≥ 1.8.8-6 required as a result of new PJSR and script identification features.

AnnotateImage Script version 2.1.7

* Fixed a bug in the NGC 2000 catalog
(ngc2000.txt file). The declination for NGC 3521 was positive, while it must be negative. Original bug report.

* New catalog: CGPN (Catalogue of Galactic Planetary Nebulae, Kohoutek 2001), with 1759 objects.

* More robust error handling in non-interactive mode (avoid message boxes).

* Improved error and warning messages.

* Special engine parameters
required by the AstroBin+PixInsight project:
  • entityInfoPath: Generation of entity information files for interactive metadata functionality.
  • scalingFactor: Apply a reduction factor to the whole annotation drawing, for generation of thumbnail annotations.
* Generation of entity information files.

* PixInsight core version ≥ 1.8.8-6 required
as a result of new PJSR and script identification features.

WeightedBatchPreprocessing Script version 1.4.8

* Image registration:
new Apply checkbox added to make this step optional.

* Subframe weighting: checkbox Compute weights after registration removed.

* Best frame auto-detection: checkbox moved under the Registration Reference Image panel.

* Do not show image windows generated by ImageIntegration thanks to the new 'showImages' parameter available since core version 1.8.8-6.

* FWHM, eccentricity and SNR are now cached into FITS headers of measured images. When computing image measurements, cached values from FITS header are used if present unless one or more are missing.

* New option Force image measurements added to force WBPP to measure the images, disregarding the cached values eventually present in FITS headers.

* PixInsight core version ≥ 1.8.8-6 required as a result of new PJSR features.

Main Improvements and Changes to the PixInsight Core Application

Hundreds of performance and stability improvements, 'small' new features, as well as many bug fixes, have been implemented in this version of the PixInsight core application. A complete description would be too large and probably too boring to be included here, so here is a partial list with the most visible changes:

* New automatic icon/window grid alignment feature. Keeping all icons and windows well organized on the workspace is now easy thanks to this new feature, which aligns positions of icons, image windows and tool windows at regularly spaced grid locations automatically during drag and movement operations. The icon grid spacing can be configured with a new Preferences option (Main Window / Startup section) and has a default value of 8 logical pixels. To use this feature:
  • Process and image icons are aligned to the workspace grid automatically. To move icons without automatic alignment, hold the Ctrl (Cmd on macOS) key pressed while dragging.

  • Icon grid spacing is also applied by the Arrange Icons and Arrange Selected Icons commands.

  • Image windows and top-level tool windows are only aligned at grid spacing during magnetic alignment. When you move or resize a window, one of its edges is automatically snapped when it gets within a small distance (about 10 logical pixels) of an existing sibling window or screen edge. If you hold the Shift key pressed while you move the window, its edge will be snapped at a distance equal to the current icon grid spacing. This allows to distribute image and top-level windows aligned with regular spacing between window edges. For example:

Note how all icons, image windows and tool windows are perfectly aligned. Ideal for users geekily obsessed with order and symmetry (I know some of these :))

* New Clone Selected Icons command. Select one or more icons, right-click on them and select this new command to generate duplicates, which will be placed with a convenient offset and selected, ready to be moved to a different location. I'm sure you'll love this useful feature.

* Improved quick search boxes in the Process Explorer and Object Explorer windows. Partial matches are now shown as a drop-down menu while you start typing the name of a process, script, or JavaScript object.

Just select the correct match on the drop-down menu and press Enter to select it on the explorer tree. Press Enter again to launch the process or script. Quick search boxes are now extremely practical, and should make the use of the Process main menu item mostly unnecessary.

* New automation mode. To execute PixInsight in automation mode, specify the following command-line argument:

--automation-mode [-n=<slot>]

where <slot> is the instance slot (from 1 to 256) of the new running instance. If no slot is specified, the new instance will get the first free slot available. The --automation-mode argument enables a special working mode optimized for non-interactive or unattended execution, new in version 1.8.8-6. It disables all fancy graphical effects (animations, window translucency, etc) and most informative/warning messages normally shown to the user. In automation mode, the application does not check for updates at startup, does not show a splash screen, does not show dialog boxes, and does not save any preferences settings upon termination. This feature has been implemented to support the AstroBin+PixInsight project.

* New IPC process control commands. The following command-line arguments are now available:


These arguments allow to execute, manage and stop processes in the context of automated tasks without any user interaction. These operations are relatively complex and a complete description would be out of the scope of this announcement post. Please ask me about these new features if you are interested. Again, these features have been implemented as part of the AstroBin+PixInsight project.

* SVG icons are now used for processes, file formats and scripts. In previous versions, PixInsight modules implemented their process and file format icons as bitmaps in XPM format, directly embedded in C++ source code, with fixed dimensions. This has been deprecated because it is obsolete technology and does not make sense in a fully scalable environment such as PixInsight. All process, file format and script icons are now implemented as SVG documents, which are installed within the core distribution tree (specifically, under the PixInsight/rsc/icons/ directory). These scalable icons are used to generate actual bitmap graphics with the required dimensions, depending on screen resolutions and usage contexts. The whole process is completely automatic, transparent, and highly optimized through internal icon cache structures.

* New LinearFunction core JavaScript object. This object implements a robust linear fit algorithm based on mean absolute deviation minimization. It is essentially the same algorithm used in the LinearFit tool, as well as in many other tools internally.

* Two-sided scale estimators available in JavaScript. The Math, Image, Matrix and Vector core JavaScript objects provide highly optimized implementations of the following two-sided estimators: average absolute deviation, median absolute deviation (MAD), and biweight midvariance (BWMV). Two-sided scale estimators are able to characterize asymmetrical and skewed sample distributions. For example, image histograms are often highly asymmetrical, so a single scalar estimate may lead to wrong statistics-based decisions. A two-sided estimate can be much more adaptive and accurate in such cases.

* The default project compression algorithm is now LZ4HC with byte shuffling. This provides faster decompression with marginal size increments in most cases.

* Dynamic HTML contents are now generated as temporary disk files. Dynamic web content is no longer managed as data allocated in memory. Using temporary files improves navigation features and provides more robust behavior of WebView JavaScript and C++ components.

* Qt updated to version 5.15.0 LTS on Linux, macOS and Windows.

* Microsoft Visual Studio 2019 is now used exclusively for all Windows development.

* LibCURL updated to version 7.71.1

LCMS updated to version 2.11

LZ4 updated to version 1.9.2

Gnuplot updated to version 5.4.0

* Important bugfix: Incorrect image statistics after PixelMath execution.
See the original bug report. This is now fixed after more than one year. Being the result of a design error, solving this problem has required a rewrite of critical internal core application components, which is a lot of delicate work.

* Obsoleted scripts. The following scripts are now declared obsolete and are no longer part of the standard PixInsight distribution: BatchPreprocessing (replaced by WeightedBatchPreprocessing), BayerDrizzlePrep (not necessary, now misleading), MathTranClient (the wonderful online MathTran service is, unfortunately, no longer available), NBRGBCombination (obsolete technology), AutoSTF (obsolete technology), NoiseEvaluation (replaced with improved versions, including a specific version for CFA frames), ContrastBackgroundNoiseRatio, DarkBiasNoiseEstimator, FlatContourPlot, FlatSNREstimator, SubframeSelector (replaced by the homonymous process), WCSHeader (not necessary after core astrometry integration).

Important Pending Tasks

Just to give you a glimpse of how PixInsight development is going on in the near future:

* Most of the official documentation is now obsolete, besides incomplete, because it does not reflect many important new features for many tools. In some cases the result is misleading information. This is the case, for example, of DynamicPSF, StarAlignment and ImageIntegration. This has to be addressed as soon as possible, but is a monumental amount of work.

* The core JavaScript engine is now obsolete. We are still using the SpiderMonkey engine version 24. We should have SpiderMonkey 60 or 68 instead. This basically requires a rewrite of about 300,000 lines of source code, probably more. This is urgent now.

* GPU acceleration should be available during 2020, at least for a few critical, fundamental components of our C++ development framework.

* A new file format for efficient local storage and management of massive star catalogs is now implemented and ready for release. The Gaia DR2 catalog has already been implemented using this format and we have been testing it with stunning results. My initial intention was to have this project completed and publicly available for this version, but some additional work is still necessary to integrate it optimally with our JavaScript and C++ development frameworks.

* A new astrometry-based mosaic construction tool is being developed and will be available soon. This tool depends largely on the availability of massive star catalogs as local databases, mainly Gaia DR2 (see above).

* The DynamicBackgroundExtraction tool is now obsolete. It will soon be replaced with a brand new tool, DynamicBackground.

* A new tool for interactive astrometric measurements, such as angular distances, diameters, areas, etc, is now under development.

* The StarMask tool is now obsolete. It will be replaced with a completely redesigned/reimplemented tool.

* The StarGenerator tool is now obsolete. It will be replaced with a completely rewritten version, or maybe it will be removed. The CatalogStarGenerator script is an excellent replacement.

* The NoiseGenerator tool is now obsolete. It will be replaced with a completely rewritten version, or maybe it will be removed. PixelMath can be used for efficient, statistically rigorous noise generation, including many statistical distributions (chi squared, gamma, Gaussian, Poisson, Student-t, and will be more).

Recommended Platforms and Supported Operating Systems

The reference implementations of PixInsight, where you may expect the maximum performance and best user experience, are the Linux and FreeBSD versions. Currently our primary development platforms are:
On FreeBSD and Linux we strongly recommend running PixInsight on the KDE Plasma desktop environment.

PixInsight 1.8.8-6 for Linux requires GLIBC 2.27 or a newer version.

PixInsight 1.8.8-6 for macOS is only compatible with macOS 10.14 and 10.15. macOS 10.13 should be supported, but we no longer test the application on it so we cannot support it officially. macOS 10.12 and older versions are not supported. The next macOS version (Big Sur) should be supported without problems, although this has not been tested as of writing this announcement. All of our macOS installation packages are digitally signed with our corporate certificates and have been notarized by Apple.

PixInsight 1.8.8-6 for Windows is compatible with Windows 10 exclusively. Windows 8.1, Windows 7 and older versions are not supported. The application might run on Windows 7, but there is no guarantee. All of our Windows installation executables have been digitally signed with our corporate extended validation (EV) code signing certificates.

Known Issues

FreeBSD and Linux

* Recent versions of the KDE Plasma desktop environment include a morphing popups desktop effect that causes problems with recent PixInsight versions. If this effect is enabled, it slows down some dragging operations in the PixInsight core application, such as dragging icons and view selectors. You should disable this effect, which is very easy from KDE's System Settings panel. This problem is also present on Linux.

* On recent versions of the KDE Plasma desktop environment, a display tearing prevention option (v-sync) is enabled by default. This option can cause input lag problems (e.g., slow cursor movement over image windows). This option should be disabled for optimal PixInsight performance:
  • System Settings > Display and Monitor > Tearing prevention: set to 'Never'
  • Click Apply

* PixInsight is not compatible with the open-source Nouveau graphics driver.
If your distribution is using Nouveau, you must remove and replace it with the proprietary Nvidia driver in order to use PixInsight.


* On Apple MacBook laptops with dual graphics cards,
the integrated Intel HD graphics driver has been causing minor usability issues on macOS 10.14 Mojave. Apparently these problems have been fixed in macOS 10.15 Catalina. However, for maximum performance and stability, we recommend disabling the integrated Intel HD graphics before running PixInsight on MacBook laptops. This can be done very easily:
  • System Preferences > Energy Saver > Automatic graphics switching: disable.

* Intel HD graphics drivers
have been causing serious problems on Windows. Hopefully most of these issues have been resolved once we no longer depend on desktop OpenGL drivers by default.

* On some laptops with nonstandard screen resolutions, such as the Microsoft Surface, PixInsight cannot find valid screen scaling factors automatically. On these machines, you may have to run the PixInsight core application with the --ui-scaling command-line argument. For example, to apply a UI scaling factor of 2:

C:\Program Files\PixInsight\bin\PixInsight.exe --ui-scaling=2

You only have to do this once, since the scaling factor will be stored in application preferences automatically. Of course, if you already are using version 1.8.6 and the interface looks correct, then you don't need to do this; this is only required for new installations.

All Platforms

* The StarNet module uses the TensorFlow library, which requires a processor with support of AVX2 and FMA instructions.
This excludes very old machines with processors released before 2013. If your computer uses one of these old processors, PixInsight 1.8.8-6 won't work as it is installed by default. However, this problem is very easy to fix: just remove the StarNet module. Do the following:

Enter the following command from a terminal:​
sudo rm /opt/PixInsight/bin/StarNet-pxm.so
Remove the following file:​
Remove the following file:​
C:\Program Files\PixInsight\bin\StarNet-pxm.dll

In all cases you need administrative privileges to remove the required file, which you also need to install PixInsight. After this simple action, PixInsight will run without problems on your old machine.


Thank you for your attention.


Well-known member
Jan 13, 2015
Wexford, PA, USA
The neural network databases are now available as a regular application update through the standard update-db repository at pixinsight.com. After installing this update, the database files will be located on the library distribution directory:
I am having difficulties getting these weights databases. The first time I ran update they were among the listed updates, but there was a connection failure when installing the updates. They were not installed and subsequent checks for updates report there are no updates available.

Juan Conejero

PTeam Member
Sep 2, 2004
Valencia, Spain
Hi all,

Thank you for your support!

John, I have blocked the StarNet databases update temporarily because the downloads (hundreds simultaneously, and the file is about 400 MB) were causing problems with our server.

Our current update system requires update packages to be stored on the same server that provides the update repository (a security measure), so I cannot provide these updates from our CDN. So I ask for patience; I'll activate the update again when the current peak of downloads slows down a little.

Juan Conejero

PTeam Member
Sep 2, 2004
Valencia, Spain
Hi Alex,

Just implemented GPU version of starnet (https://darkskies.space/pixinsight-starnet-cuda/). Will the same implementation steps work for this release? If not, Alex Sad!
From the announcement post:

With this initial release we have included the CPU-only version of the TensorFlow libraries for Linux and Windows. We are considering the possibility of creating a new repository to distribute GPU-enabled versions of TensorFlow as an optional update for these platforms. Note that, unfortunately, there are no GPU versions of TensorFlow for macOS. We'll keep you informed about this.

When we release the optional update mentioned above, I think your tutorial should work without problems.
  • Like
Reactions: rbotero


Well-known member
Aug 19, 2018
Starnet weight values are still missing from: C:\Program Files\PixInsight\library, after uninstalling PI old, installing PI new, and updating (multiple checks).

Am I misunderstanding the procedure?

Juan Conejero

PTeam Member
Sep 2, 2004
Valencia, Spain
The update with StarNet weights files is now available again from our server, since the peak of downloads seems to have calmed a bit. Remember that once installed, you'll have to select the weights files manually from the StarNet tool:

- Click the Preferences tool button (wrench icon).

- Select the weights databases, depending on your operating system:

Linux: /opt/PixInsight/library​
macOS: /Applications/PixInsight/library​
Windows: C:\Program Files\PixInsight\library​


New member
Feb 24, 2020
This looks great, thank you. Excited to see the new DBE replacement.

Are there any plans to let users choose different weighting parameters in WBPP? Many including myself prefer using Stars instead of SNR and I'm sure there's a never ending list of others' preferences.


PTeam Member
Nov 23, 2009
Starnet weight values are still missing from: C:\Program Files\PixInsight\library, after uninstalling PI old, installing PI new, and updating (multiple checks).

Am I misunderstanding the procedure?
of course you can always use the old weights files, as long as you didn't delete them accidentally while installing the new PI. the weights files on sourceforge (in either the command line package or the PI module package) will work as well.



Mar 11, 2019

I just loaded the new version, and I cannot open the process or scripts, and cannot open any save projects or files. Can you assist?


Sep 3, 2016
It seems for StarNet the image needs to be histogram stretched before StarNet processing is applied. Is this correct?


PTeam Member
Nov 23, 2009
that is correct and was always the case with starnet. the neural network was trained on stretched images. i think there are a couple of forum posts here outlining a "reversible" stretch using MTF which can be used to run SN and then return the image to a linear state.


New member
Feb 29, 2020
The new version 1.8.8-6 is simply amazing. And surprising, I can launch PixInsight in Wayland native mode. Basically I got instantly hidpi and most XWayland UI bugs are resolved. Many process / script UI works but I cannot load image at all so the Wayland is still not usable. But that's still a big step forward for Wayland support.

This is the error when opening an image if devs is interested in:
** No running X11 compositing manager has been detected. Some core GUI functionality will be reduced or unavailable.
*** PCL Unix Signal Handler: Critical signal caught (11): Segmentation violation

PixInsight 1.8.8-6 - Critical Signal Backtrace
Received signal 11 (SIGSEGV)
Module: /home/liberty/opt/PixInsight/bin/./PixInsight(+0x1725ff1) [0x5566b2d5eff1]
39: /usr/lib/libpthread.so.0(+0x140f0) [0x7f08b85880f0]
38: /usr/lib/libX11.so.6(XQueryKeymap+0x26) [0x7f08b85cd496](+0x26 [0x7f08b85cd496])
37: pi::IsKeyPressed(int, int)(+0x39 [0x5566b2a84e69])
36: pi::PixInsightMainWindow::FileOpenRecentImageFile(int)(+0xa9 [0x5566b27fabb9])
35: /home/liberty/opt/PixInsight/bin/./lib/libQt5Core.so.5(+0x2fe7f0) [0x7f08ac7407f0]
34: QSignalMapper::mapped(int)(+0x3e [0x7f08ac74299e])
33: QSignalMapper::map(QObject*)(+0x6c [0x7f08ac743e7c])
32: /home/liberty/opt/PixInsight/bin/./lib/libQt5Core.so.5(+0x2fe7f0) [0x7f08ac7407f0]
31: QAction::triggered(bool)(+0x42 [0x7f08add09622])
30: QAction::activate(QAction::ActionEvent)(+0xa8 [0x7f08add0bc48])
29: /home/liberty/opt/PixInsight/bin/./lib/libQt5Widgets.so.5(+0x2fa6c2) [0x7f08ade906c2]
28: /home/liberty/opt/PixInsight/bin/./lib/libQt5Widgets.so.5(+0x301c4a) [0x7f08ade97c4a]
27: QMenu::mouseReleaseEvent(QMouseEvent*)(+0x272 [0x7f08ade98ee2])
26: QWidget::event(QEvent*)(+0x27e [0x7f08add51d2e])
25: QMenu::event(QEvent*)(+0x153 [0x7f08ade9b4d3])
24: QApplicationPrivate::notify_helper(QObject*, QEvent*)(+0x7f [0x7f08add0f86f])
23: QApplication::notify(QObject*, QEvent*)(+0x583 [0x7f08add18943])
22: pi::PixInsightApplication::notify(QObject*, QEvent*)(+0x1f [0x5566b1e80eff])
21: QCoreApplication::notifyInternal2(QObject*, QEvent*)(+0x12a [0x7f08ac70acaa])
20: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer, bool, bool)(+0x1b3 [0x7f08add17a53])
19: /home/liberty/opt/PixInsight/bin/./lib/libQt5Widgets.so.5(+0x1d7336) [0x7f08add6d336]
18: /home/liberty/opt/PixInsight/bin/./lib/libQt5Widgets.so.5(+0x1d9b94) [0x7f08add6fb94]
17: QApplicationPrivate::notify_helper(QObject*, QEvent*)(+0x7f [0x7f08add0f86f])
16: QApplication::notify(QObject*, QEvent*)(+0x330 [0x7f08add186f0])
15: pi::PixInsightApplication::notify(QObject*, QEvent*)(+0x1f [0x5566b1e80eff])
14: QCoreApplication::notifyInternal2(QObject*, QEvent*)(+0x12a [0x7f08ac70acaa])
13: QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)(+0x6e8 [0x7f08ad3d3e68])
12: QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)(+0x255 [0x7f08ad3d5475])
11: QWindowSystemInterface::sendWindowSystemEvents(QFlags)(+0xbb [0x7f08ad3adbbb])
10: /home/liberty/opt/PixInsight/bin/./lib/libQt5WaylandClient.so.5(+0x139390) [0x7f08a6b26390]
  9: /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x25c) [0x7f08a990343c](+0x25c [0x7f08a990343c])
  8: /usr/lib/libglib-2.0.so.0(+0xa01d9) [0x7f08a99511d9]
  7: /usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x31) [0x7f08a9902221](+0x31 [0x7f08a9902221])
  6: QEventDispatcherGlib::processEvents(QFlags)(+0x5e [0x7f08ac76358e])
  5: QEventLoop::exec(QFlags)(+0x12b [0x7f08ac70989b])
  4: QCoreApplication::exec()(+0x90 [0x7f08ac7117b0])
  3: /home/liberty/opt/PixInsight/bin/./PixInsight(main+0x4101) [0x5566b1ceb3e1](+0x4101 [0x5566b1ceb3e1])
  2: /usr/lib/libc.so.6(__libc_start_main+0xf2) [0x7f08ab5ab152](+0xf2 [0x7f08ab5ab152])
  1: /home/liberty/opt/PixInsight/bin/./PixInsight(_start+0x2a) [0x5566b1d2f64a](+0x2a [0x5566b1d2f64a])


Well-known member
Apr 14, 2017
@Juan Conejero Just installed the latest version, just a couple of questions: -

1, Why for the life of me have you removed NBRGBcombination, it was a brilliant script and you haven't from what I can see implemented anything to replace it!
2. I have said this before, but with every update we have to uninstall, re-install then update our repositories and re-install our scripts, its getting to be a pain in the rear now and in this modern day shouldn't be necessary.

Item 1. is really important, I'm not a programmer or able to write scripts, so I relied on that for adding my Ha to my RGB images, please review your decision.


NB Just to add that thankfully @darkarchon he suggested that I save the copy of the script from my other installation on my laptop and then install it back on the latest version, which I have now done and it works, but this shouldn't have been necessary.
Last edited: