Home

Awesome

Tests Docs NPM Version NPM Downloads

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.

Installation

To install the package, run

npm i @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.

The basic usage of the package works as follows:

import ShadingScene from '@openpv/simshady';

const lat = 50.0;
const lon = 11.0;
const scene = new ShadingScene(lat, lon);
scene.addShadingGeometry(someShadingGeometry);
scene.addSimulationGeometry(someSimulationGeometry);

let mesh = await scene.calculate({
    numberSimulations: 100,
    diffuseIrradiance: "https://www.openpv.de/data/irradiance",
    urlDirectIrrandianceTIF:
      "https://www.openpv.de/data/irradiance/geotiff/average_direct_radiation.tif",
    urlDiffuseIrrandianceTIF:
      "https://www.openpv.de/data/irradiance/geotiff/average_diffuse_radiation.tif",
});

showThreeJS(mesh);

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. As a first step, you might check out our contributing guidelines.

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>