Metadata-Version: 2.4
Name: mymesh
Version: 0.1.0
Summary: Python code for generating and working with meshes.
Author-email: "Timothy O. Josephson" <toj@bu.edu>
License: MIT License
        
        Copyright (c) 2024 Timothy O. Josephson
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Documentation, https://bu-smbl.github.io/mymesh/
Keywords: mesh,scientific,engineering,mechanics,fem,fvm,finite elements,3D model
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: importlib-metadata; python_version < "3.8"
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.10.0
Requires-Dist: sympy>=1.11
Provides-Extra: all
Requires-Dist: meshio>=5.1.0; extra == "all"
Requires-Dist: numba>=0.60.0; extra == "all"
Requires-Dist: pydicom>=2.4.4; extra == "all"
Requires-Dist: tifffile>=2025.2.18; extra == "all"
Requires-Dist: opencv-python>=4.9.0.0; extra == "all"
Requires-Dist: vispy>=0.14.1; extra == "all"
Requires-Dist: matplotlib>=3.7.1; extra == "all"
Requires-Dist: pillow>=10.0.0; extra == "all"
Requires-Dist: jupyter_rfb>=0.4.2; extra == "all"
Requires-Dist: PyQt6>=6.2.3; extra == "all"
Requires-Dist: PyGlet>=2.0.10; extra == "all"
Dynamic: license-file

![](resources/mymesh_logo.png)

MyMesh is a general purpose toolbox for generating, manipulating, and analyzing 
meshes for finite element, finite difference, or finite volume simulations. It 
has particular focuses on implicit function and image-based mesh generation.

MyMesh was originally developed in support of the Ph.D. research of Tim 
Josephson in Elise Morgan’s Skeletal Mechanobiology and Biomechanics Lab at 
Boston University.

# Getting Started
For more details, see the [full documentation](https://bu-smbl.github.io/mymesh/)

## Installing from the [Python Package Index (PyPI)](https://pypi.org/project/mymesh/)
```
pip install mymesh[all]
```

To install only the minimum required dependencies, omit `[all]`.

## Installing from source:
Download/clone the repository, then run
```
pip install -e <path>/mymesh
```
with `<path>` replaced with the file path to the mymesh root directory.

# Development

## Usage of generative AI
MyMesh was and will continue to be developed by humans. Initial development of
MyMesh began in the summer of 2021, before the release of OpenAI's ChatGPT 
(Nov. 30, 2022) and the widespread proliferation of powerful generative AI 
chatbots. Since the release of ChatGPT, Claude (Anthropic), Gemini (Google), and
others, I have at times explored their capabilities by asking them meshing
questions, receiving a mix of helpful and unhelpful responses. While generative
AI was never used to generate the code for MyMesh, it was in some instances 
consulted alongside other resources (e.g. StackExchange) for recommendations
on how to improve efficiency of certain processes.
Generative AI has been used in the following ways throughout the development of 
MyMesh:

    - As a consultant for understanding concepts, alongside academic literature.
    - As a resource for general-purpose programming concepts, such as methods for improving efficiency of certain operations.
    - Assistance in setting up packaging infrastructure (e.g. pyproject.toml, github workflows).
    - Generation of test cases for some unit tests.
  
