Skip to main content

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.

Release files for nst1 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for nst1 0.1.2
File
nst1-0.1.2-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
nst1-0.1.2-cp39-abi3-manylinux_2_39_x86_64.whl CPython 3.9 abi3 Linux glibc 2.39+ x86-64 Details
nst1-0.1.2-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
nst1-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 9.4 MB

Release files / nst1-0.1.2-cp39-abi3-win_amd64.whl

Download URL nst1-0.1.2-cp39-abi3-win_amd64.whl
Size 2.3 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
da09bbefec8d7d26c44f8cefd653d0a91e79296afc5e91333ba6269e7547396e
BLAKE2b-256 checksum
How to use checksums
1bf961ea825837380bf158c7dc04ac4f9d78e5abc7e769013f37d94e4c8a274a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / nst1-0.1.2-cp39-abi3-manylinux_2_39_x86_64.whl

Download URL nst1-0.1.2-cp39-abi3-manylinux_2_39_x86_64.whl
Size 2.5 MB
Tags CPython 3.9 Linux glibc 2.39+ x86-64 abi3
SHA-256 checksum
How to use checksums
792a8bbac9ef4c3ce528d57f6fa097d3065665b0384eb5a58399630057b0e070
BLAKE2b-256 checksum
How to use checksums
edef779305c1699a109a81440b5bf33da150f378fc144b54995a1c1ffde4ada1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / nst1-0.1.2-cp39-abi3-macosx_11_0_arm64.whl

Download URL nst1-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
Size 2.0 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bdc0a4599268ce41a6d1128373191bad36f756f51a7c6dba3d60df8a02fdfdcf
BLAKE2b-256 checksum
How to use checksums
c4f2834d1c1b212dfe6894ac3e1ff338ce9ef9715503a7a92cc640d43812cc78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / nst1-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl

Download URL nst1-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl
Size 2.5 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
81655c0bb7679b6aadca6be8738e889104bdd3125eef8d48a9f1ae88a913e55a
BLAKE2b-256 checksum
How to use checksums
965e8f4999d9c705a27195dd6c10b15bc7d620dfd90c20ff2fb4747d6f34f9fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

0.1.2 This release

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page