Skip to content

ARTIST-Association/ARTIST

logo

AI-enhanced differentiable Ray Tracer for Irradiation Prediction in Solar Tower Digital Twins

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 differentiable ray tracer using the PyTorch machine-learning framework in Python. Leveraging automatic differentiation and GPU computation, it facilitates the optimization of heliostats, towers, and camera parameters within a solar field by combining gradient-based optimization methods with smooth parametric descriptions of heliostats.

Our contributions include:

  • Efficient heliostat calibration: We develop a parallelized geometric kinematic model that enables efficient calibration via either ray tracing-based or motor position data. This offers a flexible and robust approach to heliostat calibration.

  • 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.

  • Immediate deployment: ARTIST enables deployment at the beginning of a solar thermal plant's operation, allowing for in situ calibration and subsequent improvements in energy efficiencies and cost reductions.

  • Optimized flux density: ARTIST enables flux density optimization across an entire heliostat field by optimizing the motor positions of all heliostats to distribute the flux optimally over the receiver.

Installation

We heavily recommend installing the ARTIST package in a dedicated Python3.10+ virtual environment. You can install ARTIST directly from the GitHub repository via:

pip install artist

Alternatively, you can install ARTIST locally. To achieve this, 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 💙.

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

Releases

No releases published

Packages

No packages published

Contributors 6

Languages