Ports opstool's per-family element colours and its diverging response scale; RenderStyle.response_scale_colors now also drives the PyVista force-diagram colouring instead of a hard-coded "coolwarm". The frame renderer drops the two-trace normal/selected workaround: my earlier assumption that plotly cannot colour segments individually was wrong. Scatter3d.line.color accepts an array mapped through a colorscale, so one trace now carries per-element colours (family + selection) and is ready to be coloured by response value later. Attribution recorded in NOTICE per GPLv3 section 5(a)/(b).
85 lines
3.8 KiB
Text
85 lines
3.8 KiB
Text
# NOTICE
|
|
|
|
OTKO
|
|
Copyright © 2026 Ozan and contributors.
|
|
|
|
## OTKO license
|
|
|
|
OTKO's own source code is licensed under the **GNU Affero General Public
|
|
License v3.0** (AGPL-3.0). The full text is in [`LICENSE`](LICENSE). This
|
|
`NOTICE` file does not replace or modify that license; where the two
|
|
disagree, `LICENSE` governs.
|
|
|
|
OTKO is **not** an MIT-licensed project. Portions of the codebase were
|
|
ported or adapted from an earlier, MIT-licensed prototype called
|
|
`otko-development`, so the original MIT notice is reproduced below as
|
|
required by that license.
|
|
|
|
## Ported / adapted code: `otko-development`
|
|
|
|
Portions of OTKO were ported or adapted from the `otko-development`
|
|
project, which is distributed under the MIT License. The MIT
|
|
copyright and permission notice is reproduced verbatim below:
|
|
|
|
```
|
|
MIT License
|
|
|
|
Copyright (c) 2026 OTKO contributors
|
|
|
|
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.
|
|
```
|
|
|
|
## Ported / adapted code: `opstool`
|
|
|
|
The canvas element colour palette in `src/otko/views/canvas3d/style.py`
|
|
(per-family element colours and the diverging response colour scale) and the
|
|
resulting diagram colouring in `views/canvas3d/diagram_renderer.py` were
|
|
adapted from the `opstool` project, which is distributed under the **GNU
|
|
General Public License v3.0**. opstool is Copyright © Yexiang Yan and
|
|
contributors.
|
|
|
|
In accordance with GPLv3 §5(a)/(b) this notice records that the material was
|
|
modified and adapted for OTKO. Combining the GPLv3-covered material with
|
|
OTKO's AGPL-3.0 code is permitted by GPLv3 §13; the combined work is
|
|
conveyed under AGPL-3.0, and the GPLv3 terms continue to apply to the
|
|
opstool-derived portions.
|
|
|
|
## Runtime dependencies
|
|
|
|
OTKO depends on third-party software that is not covered by OTKO's
|
|
AGPL-3.0 license. Each component remains under its own license, and its
|
|
license text ships with the corresponding package. The notes below are a
|
|
summary for attribution, not a substitute for those license texts.
|
|
|
|
- **OpenSees / OpenSeesPy** — the finite-element solver invoked by
|
|
`otko.services.opensees_runner`. OpenSees is copyright The Regents of
|
|
the University of California and is distributed under a BSD-style
|
|
license; the notice is shipped inside the `openseespy` package.
|
|
- **PySide6** — the Qt 6 bindings used by the desktop GUI. PySide6 is
|
|
available under the GNU Lesser General Public License v3 (LGPLv3) or a
|
|
commercial license. OTKO links against it dynamically, which keeps the
|
|
LGPL relinking obligation satisfiable for redistributors.
|
|
- **numpy**, **pydantic**, **h5py**, **pyvista**, **VTK**,
|
|
**pyqtgraph**, and **imageio** — each is distributed under its own
|
|
license (for example BSD-3-Clause, MIT, and similar permissive terms).
|
|
See the license file bundled with each installed package for the exact
|
|
terms.
|
|
|
|
When redistributing OTKO, keep `LICENSE`, this `NOTICE`, and the license
|
|
notices of the dependencies above.
|