artist

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

https://github.com/artist-association/artist

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

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

Basic Info
  • Host: GitHub
  • Owner: ARTIST-Association
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 152 MB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 6
  • Open Issues: 11
  • Releases: 0
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

logo

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

License: MIT Ruff codecov Documentation Status fair-software.eu

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: Coming soon so stay tuned :rocket:!

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: bash pip install git+https://github.com/ARTIST-Association/ARTIST Alternatively, you can install ARTIST locally. To achieve this, there are two steps you need to follow: 1. Clone the ARTIST repository: bash 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 :rocket:! 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 :fire:. Please also carefully check our code of conduct :blue_heart:.

Acknowledgments

This work is supported by the Helmholtz AI platform grant.


Owner

  • Name: ARTIST-Association
  • Login: ARTIST-Association
  • Kind: organization

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  ARTIST - AI-enhanced differentiable Ray Tracer for
  Irradiation Prediction in Solar Tower Digital Twins
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Max
    family-names: Pargmann
    email: max.pargmann@dlr.de
    affiliation: German Aerospace Center (DLR)
    orcid: 'https://orcid.org/0000-0002-4705-6285'
  - given-names: Kaleb
    family-names: Phipps
    email: kaleb.phipps@kit.edu
    affiliation: Karlsruhe Institute of Technology (KIT)
    orcid: 'https://orcid.org/0000-0002-9197-1739'
  - given-names: Marie
    family-names: Weiel
    email: marie.weiel@kit.edu
    affiliation: Karlsruhe Institute of Technology (KIT)
    orcid: 'https://orcid.org/0000-0001-9648-4385'
  - given-names: Marlene
    family-names: Busch
    email: marlene.busch@dlr.de
    affiliation: German Aerospace Center (DLR)
  - given-names: Mathias
    family-names: Kuhl
    email: mathias.kuhl@dlr.de
    affiliation: German Aerospace Center (DLR)
    orcid: 'https://orcid.org/0000-0003-0097-7260'
  - given-names: Felix
    family-names: Göhring
    email: felix.goehring@dlr.de
    affiliation: German Aerospace Center (DLR)
  - given-names: Daniel
    family-names: Maldonado Quinto
    email: daniel.maldonadoquinto@dlr.de
    affiliation: German Aerospace Center (DLR)
  - given-names: Robert
    family-names: Pitz-Paal
    orcid: 'https://orcid.org/0000-0002-3542-3391'
    email: robert.pitz-paal@dlr.de
    affiliation: German Aerospace Center (DLR)
  - given-names: Moritz
    family-names: Leibauer
    email: moritz.leibauer@synhelion.com
    affiliation: Synhelion Germany
  - given-names: Markus
    family-names: Götz
    email: markus.goetz@kit.edu
    affiliation: Karlsruhe Institute of Technology (KIT)
    orcid: 'https://orcid.org/0000-0002-2233-1041'
repository-code: 'https://github.com/ARTIST-Association/ARTIST'
url: 'https://artist.readthedocs.io/en/latest/?badge=latest'
abstract: >-
  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, solar towers, and camera parameters
  within a solar field by combining gradient-based
  optimization methods with smooth parametric descriptions
  of heliostats.
keywords:
  - Solar Tower Power Plant
  - Concentrated Solar Energy
  - Differentiable Ray Tracing
  - Digital Twin
  - Heliostat Calibration
  - Surface Reconstruction
  - Python
license: MIT

GitHub Events

Total
  • Create event: 37
  • Issues event: 35
  • Watch event: 2
  • Delete event: 34
  • Member event: 1
  • Issue comment event: 113
  • Push event: 257
  • Pull request review comment event: 646
  • Pull request review event: 627
  • Pull request event: 56
  • Fork event: 6
Last Year
  • Create event: 37
  • Issues event: 35
  • Watch event: 2
  • Delete event: 34
  • Member event: 1
  • Issue comment event: 113
  • Push event: 257
  • Pull request review comment event: 646
  • Pull request review event: 627
  • Pull request event: 56
  • Fork event: 6

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 18
  • Total pull requests: 29
  • Average time to close issues: 10 months
  • Average time to close pull requests: 18 days
  • Total issue authors: 5
  • Total pull request authors: 6
  • Average comments per issue: 0.72
  • Average comments per pull request: 1.69
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 18
Past Year
  • Issues: 12
  • Pull requests: 27
  • Average time to close issues: 5 months
  • Average time to close pull requests: 19 days
  • Issue authors: 4
  • Pull request authors: 4
  • Average comments per issue: 0.33
  • Average comments per pull request: 1.81
  • Merged pull requests: 20
  • Bot issues: 0
  • Bot pull requests: 18
Top Authors
Issue Authors
  • kalebphipps (13)
  • MarleneBusch (11)
  • Filos1992 (3)
  • Markus-Goetz (2)
  • mathiaskuhl (1)
Pull Request Authors
  • pre-commit-ci[bot] (25)
  • MarleneBusch (10)
  • kalebphipps (3)
  • mcw92 (2)
  • Markus-Goetz (1)
  • faezs (1)
  • Filos1992 (1)
Top Labels
Issue Labels
enhancement (9) maintenance (8) good first issue (2) help wanted (2) question (1)
Pull Request Labels
documentation (3) maintenance (1) bug (1) enhancement (1) Urgency: Low (1)