Skip to content

ARTIST-Association/ARTIST

logo

AI-Enhanced Differentiable Ray Tracer for Irradiation Prediction in Solar Tower Digital Twins

DOI PyPI License: MIT OpenSSF Best Practices fair-software.eu FAIR checklist badge Ruff codecov pre-commit.ci status Documentation Status

What ARTIST can do for you

The ARTIST package provides an implementation of a fully differentiable ray tracer using the PyTorch machine-learning framework in Python. Leveraging automatic differentiation and GPU computation, ARTIST enables gradient-based optimization within a differentiable solar tower power plant model using smooth parametric descriptions of heliostats. While the underlying framework is designed to support the optimization of arbitrary plant components, including towers and receivers, the current implementation focuses on data-driven heliostat surface reconstruction and alignment.

Our contributions include:

  • Efficient heliostat calibration: ARTIST combines a differentiable geometric model of heliostat kinematics with parallelized computation to enable efficient heliostat reconstruction from receiver flux measurements. This results in a flexible and robust calibration approach.

  • Accurate surface reconstruction and flux density prediction: Leveraging learning Non-Uniform Rational B-Splines (NURBS), ARTIST reconstructs heliostat surfaces accurately using calibration images commonly available in solar thermal power plants. Thus, we can achieve sub-millimeter accuracy in mirror reconstruction from focal spot images, contributing to improved operational safety and efficiency. The reconstructed surfaces can be used for predicting unique heliostat flux densities with state-of-the-art accuracy. Check out this paper for more details:

    M. Pargmann, J. Ebert, M. Götz et al. Automatic heliostat learning for in situ concentrating solar power plant metrology with differentiable ray tracing. Nat Commun 15, 6997 (2024). https://doi.org/10.1038/s41467-024-51019-z

  • Immediate deployment: ARTIST can be deployed from the beginning of a solar thermal power plant's operation, enabling in situ calibration and subsequent improvements in energy efficiency and cost reduction..

  • Optimized flux density: ARTIST enables flux density optimization across an entire heliostat field by adjusting heliostat motor positions to obtain an optimal flux distribution on the receiver.

Installation

We recommend installing the ARTIST package in a dedicated Python3.10+ virtual environment. You can install the latest stable release from PyPI:

pip install artist-csp

If you need the latest updates, you can also install ARTIST directly from the main branch via:

pip install git+https://github.com/ARTIST-Association/ARTIST.git

To install ARTIST locally, there are two steps you need to follow:

  1. Clone the ARTIST repository:
    git clone https://github.com/ARTIST-Association/ARTIST.git
  2. Install the package from the main branch. There are multiple installation options available:
    • Install basic dependencies: pip install .
    • Install with optional dependencies to run the tutorials: pip install ."[tutorials]"
    • Install an editable version with developer dependencies: pip install -e ."[dev]"

Structure

The ARTIST repository is structured as shown below:

.
├── artist # Parent package
│   ├── core # Core functionality of ARTIST, e.g. raytracing, optimizers etc.
│   ├── data_loader # Deals with loading data into ARTIST from different sources
│   ├── field # Objects in the field, e.g. heliostats and target areas like receivers and calibration targets
│   ├── scenario # Functionality to create and load scenarios in ARTIST.
│   ├── scene # Light sources and factors influencing the surroundings
│   └── util
├── tests
│   ├── data
│   │   ├── field_data # Real measurements from the PAINT database and STRAL that can be used in ARTIST
│   │   ├── scenarios # Scenarios describing an environment that can be loaded by ARTIST
│   │   └── ...
│   ├── core
│   ├── data_loader
│   └── ...
└── tutorials # Tutorials to help you get started with ARTIST
    ├── data # Data accessed in the tutorials
    │   ├── paint # Real measurements from the PAINT database
    │   ├── scenarios # Scenarios describing an environment that can be loaded by ARTIST
    │   └── stral Real # Measurements from STRAL
    └── ...

Documentation

You can check out the full ARTIST documentation at https://artist.readthedocs.io/en/latest/index.html 🚀! The ARTIST documentation includes:

  • Installation instructions
  • Tutorials
  • Some theoretical background information
  • API reference

How to contribute

Check out our contribution guidelines if you are interested in contributing to the ARTIST project 🔥. Please also carefully check our code of conduct 💙.

How to test our software

For detailed instructions on testing, please refer to point 6 of the contribution guidelines.

Acknowledgments

This work is supported by the Helmholtz AI platform grant.


About

A differentiable ray tracer using the PyTorch machine-learning framework in Python.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors