Making structural and geotechnical systems simulation with OpenSees and OpenSeesPy effortless and straightforward
Welcome to the documentation for opstool, a thoughtfully crafted preprocessing and postprocessing package designed for OpenSeesPy.
Design Philosophy of opstool¶
OpenSeesPy as the core analysis and solution engine
Modular, end-to-end workflow
xarray-driven data organization
Unified element-type classification
Consistent response handling across elements
Interchangeable visualization backends
Minimal intrusion into user scripts
opstool is a modular, data-oriented framework built on OpenSeesPy (It can also be a version compiled by yourself) to support the complete structural analysis workflow, including pre-processing, analysis, post-processing, and visualization.
OpenSeesPy is used strictly as the analysis and solution engine, while opstool focuses on structuring and managing analysis data. Simulation results are organized using xarray-based labeled N-dimensional arrays, enabling clear, consistent handling of time-dependent and high-dimensional responses.
A key design choice is that most OpenSees element types are systematically classified (e.g., nodal, truss, frame, shell, plane, and solid elements). This classification allows responses from different element formulations to be stored, queried, and visualized in a unified manner, independent of the underlying element implementation.
By separating numerical solving from data organization and visualization, opstool enhances usability and extensibility while preserving the flexibility of script-based OpenSeesPy modeling.
Note
For v1.0.20 and earlier document versions See https://opstool.readthedocs.io/en/v1.0.20/.
Citing opstool¶
If you find opstool useful in your research or projects, please consider citing the following publication:
Yexiang Yan and Yazhou Xie. “opstool: A Python library for OpenSeesPy analysis automation, streamlined pre-and post-processing, and enhanced data visualization.” SoftwareX 30 (2025): 102126. DOI: https://doi.org/10.1016/j.softx.2025.102126.
@article{YAN2025102126,
title = {opstool: A Python library for OpenSeesPy analysis automation, streamlined pre- and post-processing, and enhanced data visualization},
author = {Yexiang Yan and Yazhou Xie},
journal = {SoftwareX},
volume = {30},
pages = {102126},
year = {2025},
issn = {2352-7110},
doi = {https://doi.org/10.1016/j.softx.2025.102126},
}
Features Overview¶
Fiber Section Meshing and Property Calculation
Easily translate Tcl-based OpenSees models into Python scripts
Unified Unit Conversion System
Integration with Gmsh Meshing
Fast gravity load application
System matrix extraction
Features in Development
Powered by xarray
Nodal Responses, Various Element Responses (Truss, Frame, Link, Shell, Plane, Solid, Contact).
Static and Dynamic Analysis
Sensitivity Analysis
Linear Buckling Analysis
Smart Analysis, features include automatic step size division, algorithm switching, and other advanced functionalities
Moment-Curvature Analysis of Sections
Linar Buckling Analysis
Why Choose opstool?¶
Efficiency: Streamlines complex workflows, reducing time spent on repetitive tasks.
Flexibility: Provides nearly identical interfaces for different visualization engines.
Accessibility: Makes advanced structural analysis tools like OpenSeesPy more approachable to users of all levels.
opstool is actively evolving, with continuous additions of new features planned for the future.
With opstool, you can focus on what matters most:
understanding and solving your structural engineering challenges.
Whether you are building models, visualizing results, or interpreting data,
opstool is your go-to solution for OpenSeesPy workflows.
Contents¶
Quick Start
User Guide
API Reference
Theory Reference
Acknowledgements¶
I sincerely thank EOS for the Honorable Mention in Pre/Post-processing & Implementations at the 1st EOS OpenSees Research and Innovation Awards.
🎉 Announcing the Winners of the 1st EOS OpenSees Research and Innovation Awards! 🎉