PyTopo3D: A Python Framework for 3D SIMP-based Topology Optimization
Jihoon Kim, Namwoo Kang
TL;DR
PyTopo3D addresses the need for accessible 3D topology optimization tools in Python by delivering a SIMP-based framework with an OC update scheme, STL-domain support, and integrated visualization. The framework emphasizes a modular Python architecture, performance-oriented FEM with sparse solvers, and practical features such as STL import/export and run management to bridge academic methods and real-world engineering workflows. Benchmarked against a MATLAB reference on a 3D cantilever problem, PyTopo3D achieves a notable speedup primarily due to efficient linear-system solves and optimized Python-based numerical routines. Overall, PyTopo3D lowers the barrier to performing 3D topology optimization within Python, enabling reproducibility, extensibility, and broader adoption in computational design research and practice.
Abstract
Three-dimensional topology optimization (TO) is a powerful technique in engineering design, but readily usable, open-source implementations remain limited within the popular Python scientific environment. This paper introduces PyTopo3D, a software framework developed to address this gap. PyTopo3D provides a feature-rich tool for 3D TO by implementing the well-established Solid Isotropic Material with Penalization (SIMP) method and an Optimality Criteria (OC) update scheme, adapted and significantly enhanced from the efficient MATLAB code by Liu and Tovar (2014). While building on proven methodology, PyTopo3D's primary contribution is its integration and extension within Python, leveraging sparse matrix operations, optional parallel solvers, and accelerated KD-Tree sensitivity filtering for performance. Crucially, it incorporates functionalities vital for practical engineering workflows, including the direct import of complex design domains and non-design obstacles via STL files, integrated 3D visualization of the optimization process, and direct STL export of optimized geometries for manufacturing or further analysis. PyTopo3D is presented as an accessible, performance-aware tool and citable reference designed to empower engineers, students, and researchers to more easily utilize 3D TO within their existing Python-based workflows.
