PCL

PixInsight Class Library

Reference Documentation

Copyright (c) 2003-2024, The PixInsight Development Team. All Rights Reserved
PixInsight is an advanced image processing software platform designed specifically for astronomical applications and other technical imaging fields. PixInsight is a modular, open-architecture system where all processing and file-handling capabilities are implemented as external installable modules.
The PixInsight core application provides the infrastructure on top of which external modules can implement processes, image file formats, and their associated user interfaces. The PixInsight Class Library (PCL) is a C++ development framework to build PixInsight modules.
PixInsight modules are special shared libraries (.so files on FreeBSD and Linux; .dylib under macOS; .dll files on Windows) that communicate with the PixInsight core application through a high-level API provided by PCL. Along with a core communication API, PCL includes a comprehensive set of image processing algorithms, ranging from geometrical transformations to multiscale analysis algorithms, most of them available as multithreaded parallel implementations. PCL also provides rigorous and efficient implementations of essential astronomical algorithms, including state-of-the-art solar system ephemerides, vector astrometry, and reduction of positions of solar system and stellar objects.
PCL code is highly portable. As of writing this document, PCL is available on the same platforms supported by the PixInsight core application: 64-bit Linux, macOS, and Windows. PixInsight modules written around PCL are directly portable to all supported platforms without changing a single line of source code. This is possible because PCL is a high-level framework. PCL isolates your module from platform-specific implementation details: all platform-dependent complexities are handled behind the scenes by the PixInsight core application and internal PCL routines.
Starting from version 2.0, which was published in December of 2012, PCL is an open-source library released under the PixInsight Class Library License (PCLL). In essence, PCLL is a liberal BSD-like license that allows you to develop open-source and closed-source, free, and commercial PixInsight modules without restrictions. As long as you observe all PCLL terms, you can modify PCL and use your modified version with or without releasing your source code.
The entire source code of PCL, along with all PixInsight modules released as open-source products, are available in the official PixInsight repositories at GitLab. Open-source modules are a good starting point for developing new PixInsight modules. PixInsight and PCL are supported by a vibrant community on PixInsight Forum, which also includes a software development section.