Skip to main content

OpenSTRAN

PyPI version License Python PyPI monthly downloads Downloads (pepy)

Open-Source Structural Analysis with Python

  • Version 0.0.5 - Alpha Release

Installation

$ pip install OpenSTRAN

Dependencies

OpenSTRAN depends on the following packages:

  • numpy - used for vector and matrix mathematical operations.

It is recommended to install these dependencies which may be done using the following command.

pip install numpy

Documentation

Read the Docs!

Capabilities

OpenSTRAN allows for the creation of simple two-dimensional frame elements and complex three-dimensional structures alike.

  • 2D truss ✔️
  • 3D truss ✔️
  • 2D frame ✔️
  • 3D space frame ✔️

Limitations

  • First order elastic analysis only.
  • Shear and torsional deformations are not considered.
  • Does not take advantage of matrix sparseness or bandedness.
  • Supports Imperial units only.

What happened to the UI?

The graphical user interface that was programmed in tkinter and relied on matplotlib as a backend has been removed and is no longer being maintained or further developed.

Instead, focus has been shifted to improving the core library, developing documentation, and standardizing output in the VTK legacy format so that solutions can be visualized using open source post processing visualization tools such as ParaView.

The UI was last available in Version 0.0.4 and can be installed with the following command.

pip install OpenSTRAN==0.0.4

Get Involved

If you would like to contribute to the development of OpenSTRAN, you are encouraged to get involved. Below are some simple ways that you can begin contributing. Keep in mind that this is not an exhaustive list and that contributions can be as simple as reporting an error if you find one, sharing your experience with the library or suggesting the addition of a feature you would like to see.

  • Help potential users learn OpenSTRAN by creating examples.
  • Create documentation for portions of the code base.
  • Validate output by comparing results with known solutions.
  • Develop features by issuing a pull request.
  • Increase readability of source code through refactoring and commenting.

All contributions are welcome and done on a voluntary basis.

Quickstart Example

Below is a simple example that will help you get started using OpenSTRAN. The example consists of a simply supported beam subject to a point load.

from OpenSTRAN.model import Model

# instantiate an empty model
simpleBeam = Model()

# create a node located at the origin
N1 = simpleBeam.nodes.addNode(0,0,0,'N1') # (X [ft], Y [ft], Z[ft], name)

# create a node 10 feet away from the origin along the global X axis.
N2 = simpleBeam.nodes.addNode(10,0,0,'N2') # (X [ft], Y [ft], Z[ft], name)

# restrain the nodes from translation.
N1.restraint = [1,1,1,0,0,0] # [Ux, Uy, Uz, φx, φy, φz] -> pinned node
N2.restraint = [1,1,1,0,0,0] # [Ux, Uy, Uz, φx, φy, φz] -> pinned node

# define a member between nodes N1 and N2.
M1 = simpleBeam.members.addMember(N1, N2) # (i node, j node)

# add a dead load of -10 kips in the global Y direction 50% along M1's span.
simpleBeam.loads.addPointLoad(M1, direction='Y', D=-10, location=50)

Metadata

Release files for OpenSTRAN 0.0.5

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

Source distribution (sdist)

Source distribution for OpenSTRAN 0.0.5
File Size Uploaded
openstran-0.0.5.tar.gz 305.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for OpenSTRAN 0.0.5
File Interpreter ABI Platform
openstran-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 491.2 kB

Release files / openstran-0.0.5.tar.gz

Download URL openstran-0.0.5.tar.gz
Size 305.3 kB
Tags Source
SHA-256 checksum
How to use checksums
83461723cf22ebd33612fc9152b379f79364f98b7869806f0cceed3afa05d108
BLAKE2b-256 checksum
How to use checksums
534b596a461c91f7d69b0a1e96bee069804c1acca2c53a8bd1596268af47ff8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 23, 2026.

Transparency log

Release files / openstran-0.0.5-py3-none-any.whl

Download URL openstran-0.0.5-py3-none-any.whl
Size 185.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bae535fe0d3a50666b1088b47049e00f428718309ae37b01d4f230a0a1062062
BLAKE2b-256 checksum
How to use checksums
47a98365907db29a986962213014985ddfaca3d114f8832aa6b2e720a18ea124
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

2 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