# Third-party notices

StiffStruct itself is proprietary (see [LICENSE](LICENSE)). It loads or uses the third-party components listed
below, each of which remains under its own licence. None of them is modified by StiffStruct.

| Component | Version used | Licence | Copyright | How it is used |
|---|---|---|---|---|
| three.js | 0.160.0 | MIT | Copyright (c) 2010-2023 three.js authors | 3D model viewer. Loaded in the browser from the jsDelivr CDN. |
| KaTeX | 0.16.9 | MIT | Copyright (c) 2013-2020 Khan Academy and other contributors | Typesets the mathematics in the calculation report. Loaded from the jsDelivr CDN. |
| Pyodide | 0.26.2 | MPL-2.0 | Copyright (c) Pyodide contributors | Python runtime in the browser. Loaded from the jsDelivr CDN only when the user clicks "Run in browser" for a Python script. |
| Firebase JavaScript SDK | 10.12.2 | Apache-2.0 | Copyright Google LLC | Optional sign-in (Firebase Authentication). Loaded from Google's CDN (gstatic.com). |
| NumPy | not bundled | BSD-3-Clause | Copyright (c) 2005-2025, NumPy Developers | Used by the exported Python scripts on the user's own machine. Not bundled with StiffStruct. |
| Matplotlib | not bundled | Matplotlib licence (PSF-based, BSD-compatible) | Copyright (c) 2012- Matplotlib Development Team | Used by the exported Python scripts for plots, on the user's own machine. Not bundled with StiffStruct. |

None of these components is bundled in or redistributed from the StiffStruct repository or website: they are
fetched by the user's browser directly from the public CDNs named above. When the user runs a Python script in the
browser, Pyodide also fetches its own copies of NumPy and Matplotlib (and the CPython runtime, under the Python
Software Foundation licence) from the same CDN, under their own licences.

## Where to find the full licence texts and source

- three.js: <https://github.com/mrdoob/three.js> (MIT)
- KaTeX: <https://github.com/KaTeX/KaTeX> (MIT)
- Pyodide: <https://github.com/pyodide/pyodide> (MPL-2.0, <https://www.mozilla.org/MPL/2.0/>). The source code of
  Pyodide is available at that address.
- Firebase JavaScript SDK: <https://github.com/firebase/firebase-js-sdk> (Apache-2.0,
  <https://www.apache.org/licenses/LICENSE-2.0>)
- NumPy: <https://github.com/numpy/numpy> (BSD-3-Clause)
- Matplotlib: <https://github.com/matplotlib/matplotlib> (<https://matplotlib.org/stable/project/license.html>)

## MIT licence (three.js and KaTeX)

The following text applies to three.js and to KaTeX, each with the copyright line given in the table above.

```
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
