npm package: @openpv/simshady
Description: Simulating Shadows for PV Potential Analysis on 3D Data on the GPU.
Author: Konrad Heidler
Latest version: 0.2.1

![Tests](https://github.com/open-pv/simshady/actions/workflows/tests.yml/badge.svg) ![Docs](https://github.com/open-pv/simshady/actions/workflows/typedoc.yml/badge.svg) [![NPM Version](https://img.shields.io/npm/v/@openpv/simshady)](https://www.npmjs.com/package/@openpv/simshady) [![NPM Downloads](https://img.shields.io/npm/dm/@openpv/simshady)](https://npmtrends.com/@openpv/simshady)

# simshady

`simshady` is a package for shading simulation and PV yield estimation based on 3D meshes. It runs on the GPU using WebGL. See it in action at [openpv.de](https://openpv.de).

## When to use `simshady`

You want to

- build an application for solar (photovoltaic) yield estimation. These estimations tell you how much electricity a solar panel can produce at a specific location. Since this is influenced a lot by the shadows of surrounding buildings and trees, you want to have a shading simulation. Use `simshady`.
- use 3D data of buildings, terrain, or trees to calculate shading. You have this data in formats that can be converted to `three.js`-Meshes, like `.obj`, `.stl`, or `.citygml`. Use `simshady`.

## Installation

If you want to use `simshady` in your web development, run

```bash
npm i @openpv/simshady
```

If you want to use the simshady [CLI tool](https://open-pv.github.io/simshady/documents/CLI.html) for simulations on your machine, run

```bash
npm install -g @openpv/simshady
```

## Usage

We publish our documentation at https://open-pv.github.io/simshady/. Additionally, we have built a minimal vite webapp to showcase the most relevant features. Check out its source code [here](https://github.com/open-pv/minimalApp).

## Team

<table>
<tr>
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
        <a href=https://github.com/MartGro>
            <img src=https://avatars.githubusercontent.com/u/14249622?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=MartGro />
            <br />
            <sub style="font-size:14px"><b>MartGro</b></sub>
        </a>
    </td>
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
        <a href=https://github.com/khdlr>
            <img src=https://avatars.githubusercontent.com/u/9249838?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=khdlr/>
            <br />
            <sub style="font-size:14px"><b>Konrad Heidler</b></sub>
        </a>
    </td>
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
        <a href=https://github.com/FlorianK13>
            <img src=https://avatars.githubusercontent.com/u/74312290?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Florian Kotthoff/>
            <br />
            <sub style="font-size:14px"><b>Florian Kotthoff</b></sub>
        </a>
    </td>
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
        <a href=https://github.com/kpoeppel>
            <img src=https://avatars.githubusercontent.com/u/37810656?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=kpoeppel />
            <br />
            <sub style="font-size:14px"><b>kpoeppel</b></sub>
        </a>
    </td>
</tr>
</table>

## Contributing

You are welcome to contribute to this project, either by adding code or creating Issues. For major changes, please open an issue first to discuss what you would like to change. As a first step, you might check out our [contributing guidelines](https://github.com/open-pv/simshady/blob/main/CONTRIBUTING.md).

## Sponsors

We thank our sponsors.

<a href="https://prototypefund.de/">
  <img src='https://github.com/open-pv/.github/assets/74312290/9dfa1ce4-adaf-4638-9cbc-e519b033331b' width='300'>
</a>