A finite-element solver for bridges and structures
Project description
NST1
A fast finite-element solver for bridges and structures — in a few lines of Python.
DISCLAIMER — hobby project; no warranty, no liability. NST1 is a personal, experimental hobby project, provided free and as is, with no warranty and no liability or responsibility of any kind. It is not certified or validated engineering software and must not be used for real structural design, construction, or any safety-critical decision — always have results independently verified by a qualified, licensed engineer. Use entirely at your own risk.
NST1 lets you build a structural model and run a full finite-element analysis straight from Python —
statics, traffic loads, prestressing, construction phasing, dynamics, buckling, nonlinear analysis,
cables, thin-walled sections, seismic, and fire. Install it with pip, import nst1, and go. Results
are deterministic and reproducible run to run.
Installation
pip install nst1
Prebuilt for Windows, macOS, and Linux (Python 3.9+). Nothing to compile and no extra tools — just
pip install.
Quickstart
import nst1
m = nst1.Model(option="spatiale")
mat = m.add_material(E=210e9, nu=0.3, rho=7850.0) # steel
sec = m.add_section(sx=5e-3, iy=8e-5, iz=8e-5, ix=1e-6, ipol=1.6e-4)
n1 = m.add_node(0.0, 0.0, 0.0)
n2 = m.add_node(2.0, 0.0, 0.0)
m.add_bar(n1, n2, section=sec, material=mat, beta=0.0)
m.support(n1, dofs="dx dy dz rx ry rz") # fully fixed end
lc = m.load_case("tip load")
lc.nodal_force(n2, fz=-1000.0)
res = m.solve()
print(res.node_disp(n2, "dz")) # cantilever tip deflection
What it can do
- Statics — 3D/2D frames; end releases, rigid offsets, eccentricities.
- Supports & soil — rigid/elastic and lift-off (unilateral) supports; elastic (Winkler) foundations.
- Traffic — influence lines & surfaces; Eurocode EN 1991-2 (LM1–LM4), railway models, Fascicule-61; multi-lane / Courbon transverse distribution.
- Prestressing & cables — tendons with friction, anchorage-set and relaxation losses; exact-catenary cable elements with form-finding and tension tuning.
- Construction phasing — staged activation, jacking, hinge placement, grouting; time-dependent creep & shrinkage.
- Dynamics — modal analysis, buckling, time-history (Newmark / HHT), response spectrum, seismic isolation.
- Nonlinear — large-displacement (P-Δ / corotational) and material (fiber plasticity).
- Sections — thin-walled (torsion / shear / warping) and fiber sections.
- Fire — thermal transient + structural response.
- Results — query forces and displacements in Python; export to ParaView (VTU / XDMF) or JSON.
License
NST1 is free for non-commercial use under the PolyForm Noncommercial 1.0.0 license (personal, research, academic, and non-profit use). Commercial use requires a separate license — please contact pavlishenku@gmail.com.
Copyright (c) 2026 Pavlishenku.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nst1-0.1.2-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: nst1-0.1.2-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da09bbefec8d7d26c44f8cefd653d0a91e79296afc5e91333ba6269e7547396e
|
|
| MD5 |
0120654b04aadbb60e06addcecf5a045
|
|
| BLAKE2b-256 |
1bf961ea825837380bf158c7dc04ac4f9d78e5abc7e769013f37d94e4c8a274a
|
File details
Details for the file nst1-0.1.2-cp39-abi3-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: nst1-0.1.2-cp39-abi3-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.9+, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
792a8bbac9ef4c3ce528d57f6fa097d3065665b0384eb5a58399630057b0e070
|
|
| MD5 |
a117b81d2514e80e76e4b0a18e26adb3
|
|
| BLAKE2b-256 |
edef779305c1699a109a81440b5bf33da150f378fc144b54995a1c1ffde4ada1
|
File details
Details for the file nst1-0.1.2-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: nst1-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdc0a4599268ce41a6d1128373191bad36f756f51a7c6dba3d60df8a02fdfdcf
|
|
| MD5 |
d29c8be884cebfb45ee02d74c28e8d0f
|
|
| BLAKE2b-256 |
c4f2834d1c1b212dfe6894ac3e1ff338ce9ef9715503a7a92cc640d43812cc78
|
File details
Details for the file nst1-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: nst1-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.9+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81655c0bb7679b6aadca6be8738e889104bdd3125eef8d48a9f1ae88a913e55a
|
|
| MD5 |
e52d0a7f04660839832e3986e85c902a
|
|
| BLAKE2b-256 |
965e8f4999d9c705a27195dd6c10b15bc7d620dfd90c20ff2fb4747d6f34f9fa
|