You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: NOTICE
+18-2Lines changed: 18 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,24 @@
1
1
# PyLCSS Third-Party Notices
2
-
Document Version: 1.2 Last Updated: February 10, 2026
2
+
Document Version: 1.3 Last Updated: May 12, 2026
3
3
4
4
This document outlines the third-party libraries and components used in PyLCSS, along with their respective licenses. PyLCSS is committed to respecting the intellectual property of all contributors and provides this information in accordance with open-source licensing requirements.
5
5
6
+
## Optional Native Solver Binaries
7
+
8
+
PyLCSS can launch native solver executables as separate external processes. These binaries are not Python dependencies and are not installed by `pip install -r requirements.txt`. The helper script `scripts/install_solvers.py` can download or locate them under `external_solvers/`, but each solver remains governed by its own upstream license.
9
+
10
+
### CalculiX (`ccx`)
11
+
- **Purpose**: Linear static FEA and CalculiX-in-the-loop optimization evaluations.
12
+
- **License**: GNU General Public License v2 or later, per the official CalculiX project notice.
- **Packaging Note**: PyLCSS writes `.inp` decks and launches `ccx` as an external process. The Windows installer helper currently prefers `ccx_static.exe` from the CalculiX 2.23 Windows binary archive because it avoids the missing MKL runtime issue of the dynamic build.
15
+
16
+
### OpenRadioss
17
+
- **Purpose**: Explicit crash/impact solve and animation conversion via Starter, Engine, and `anim_to_vtk`.
18
+
- **License**: GNU Affero General Public License v3 or later, per the OpenRadioss `COPYRIGHT.md` distributed with the upstream binaries.
- **Packaging Note**: PyLCSS writes or stages solver decks, launches OpenRadioss as an external process, and imports converted animation frames. OpenRadioss may include additional third-party runtime components in its `extlib/` directory.
21
+
6
22
## 1. LGPL Licensed Software
7
23
8
24
> ⚠️ **LGPL Compliance Note**: PyLCSS is distributed as a Python source package. All LGPL-licensed libraries are dynamically linked and can be replaced by the end user. If distributing as a compiled executable (EXE, DMG), these libraries must not be statically linked. Distributors must ensure that the end-user retains the ability to replace these shared libraries with modified versions to maintain compliance with the LGPL.
@@ -259,4 +275,4 @@ The following versions are explicitly verified for license compliance. Deviating
259
275
260
276
---
261
277
262
-
For more information about PyLCSS and its licensing, please refer to the LICENSE file or visit the project repository.
278
+
For more information about PyLCSS and its licensing, please refer to the LICENSE file or visit the project repository.
**PyLCSS** (Python Low-Code System Solutions) is a professional engineering design platform. It allows engineers to model complex multidisciplinary systems through a node-based visual interface, run parametric CAD and FEA simulations, explore high-dimensional **Solution Spaces**, and optimise designs using 7 different algorithms — all within a single desktop application.
36
36
37
-
Built for real-world engineering workflows, PyLCSS features a crash-free multi-threaded architecture, vectorised computation kernels, comprehensive file I/O, and an integrated AI coding assistant.
37
+
Built for real-world engineering workflows, PyLCSS features a crash-free multi-threaded architecture, vectorised computation kernels, comprehensive file I/O, external solver integration, and an integrated AI coding assistant.
38
+
39
+
PyLCSS is more than a standalone CAD environment: the CAD graph is the parametric source of truth for downstream simulation and design optimisation. STEP is supported for exchange, but `.cad` graphs and exposed parameters are required when a model must be rebuilt, swept, or optimised.
38
40
39
41
---
40
42
@@ -48,23 +50,26 @@ PyLCSS implements the **Solution Space** approach for robust design: instead of
-**Code-Assisted Modeling Direction** — Parts and assemblies should remain reproducible through graph nodes, exposed parameters, imported STEP/STL geometry, or code-based creation blocks rather than hidden manual edits
53
56
-**Topology Optimisation** — SIMP with MMA/OC solvers, density/sensitivity filtering, Heaviside projection, symmetry constraints, shape recovery with marching cubes, and **direct STL/OBJ export** of optimised shapes
54
57
-**Advanced Nodes** — Thicken, Pipe, Split, Text emboss, Math Expression evaluator, Import STEP/STL
55
58
-**Real-Time 3D Viewer** — VTK-based with density cutoff preview during optimisation
56
59
-**Measurement** — Distance, surface area, and volume nodes
57
60
58
61
### Finite Element Analysis (FEA)
59
-
-**scikit-fem** + **Netgen** meshing — Tetrahedral/triangular elements
60
-
-**Linear Elasticity** — Displacement, von Mises stress, compliance
-**Remeshing** — Surface-to-solid conversion for topology-optimised shapes (up to 20 000 faces)
63
-
-**External CalculiX Backend** — Full round-trip: PyLCSS writes a CalculiX `.inp`, runs `ccx`, parses the `.frd` output, and displays displacement + Von Mises stress in the in-app VTK viewer (see [Installation](#installation) for the binary fetch step)
67
+
-**CalculiX-Coupled Optimisation** — Topology, shape, and size optimisation now run through repeated CalculiX evaluations instead of the removed in-process scikit-fem solver path
64
68
65
69
### Crash / Impact Simulation
66
-
-**Internal Explicit Solver** — Central-difference transient solid mechanics with plasticity, fracture, contact, and optional GPU path
67
-
-**OpenRadioss Backend** — Full round-trip: PyLCSS writes an LS-DYNA-style keyword deck, runs Starter + Engine, converts the `A001`/`A002`… animation files via `anim_to_vtk`, and plays the frames in the crash viewer (requires the OpenRadioss binaries — see [Installation](#installation))
70
+
-**OpenRadioss Backend** — PyLCSS writes an LS-DYNA-style keyword deck, runs Starter + Engine, converts the `A001`/`A002`… animation files via `anim_to_vtk`, and plays the frames in the crash viewer
71
+
-**Run Radioss Deck Node** — Existing OpenRadioss/LS-DYNA `.rad`/`.k` decks can be launched and imported
72
+
-**Current Limitation** — The generated crash deck is still a thin integration layer. Even simple explicit simulations can run slowly when the mesh has tiny elements, the end time/output frequency is high, or animation conversion dominates.
68
73
69
74
### Multi-Objective Optimisation (7 Solvers)
70
75
| Algorithm | Type | Best For |
@@ -122,7 +127,7 @@ PyLCSS implements the **Solution Space** approach for robust design: instead of
122
127
## Installation
123
128
124
129
### Prerequisites
125
-
-**Python** 3.8+
130
+
-**Python** 3.10+
126
131
-**OS** Windows 10/11 (macOS and Linux: experimental)
| CalculiX (`ccx`) |`python scripts/install_solvers.py --only ccx`|`PYLCSS_CALCULIX_CCX`, `CALCULIX_CCX`, `ccx_static`,`ccx`, or `ccx.exe` on `PATH`|
161
166
| OpenRadioss Starter/Engine |`python scripts/install_solvers.py --only radioss`|`PYLCSS_OPENRADIOSS_STARTER`, `PYLCSS_OPENRADIOSS_ENGINE`, or `starter_*`/`engine_*` on `PATH`|
162
167
| OpenRadioss `anim_to_vtk`| Bundled with the Radioss install above |`PYLCSS_OPENRADIOSS_ANIM2VTK` or `anim_to_vtk*` on `PATH`|
163
168
164
-
Structural optimization (Topology / Shape / Size) still runs on the in-process scikit-fem solver — the optimization nodes need a Jacobian/adjoint that the external decks do not provide. The external backends are for high-fidelity verification of single FEA / crash runs.
169
+
CalculiX and OpenRadioss are launched as external native processes. They are not pip dependencies and remain governed by their own upstream licenses.
0 commit comments