Complete Engineering Analysis Suite for mechanical systems simulation, CAD, FEA, and signal processing
Project description
GearMaster - Complete Engineering Analysis Suite
A comprehensive Python-based engineering platform for mechanical systems simulation, CAD operations, FEA analysis, hydraulic systems modeling, and signal processing. Built with both programmatic and visual programming interfaces.
๐ฏ Overview
GearMaster is a professional-grade engineering suite designed for:
- ๐ง Mechanical Component Analysis - Fasteners, bearings, gears, shafts
- ๐๏ธ Structural Analysis - FEA with Ansys DPF integration, cross-section properties
- ๐ง Hydraulic Systems Modeling - Cylinders, motors, valves, manifolds
- ๐ Signal Processing - Time-series analysis, FFT, filtering, data analysis
- ๐จ CAD Operations - Geometric modeling and manipulation
- ๐ Data Management - Multi-format data handling (CSV, Excel, HDF5)
Core Features
-
Dual Interface Model
- Programmatic: Direct Python API via
GM_modulesfor automation and scripting - Visual: Node-based visual programming via
GM_Visualfor interactive workflows
- Programmatic: Direct Python API via
-
3D Analysis & Visualization
- HEXA8 finite element support
- Rotation-invariant strain energy calculations
- Ansys DPF/PyDPF integration for result processing
-
Material Library
- Comprehensive material property database
- Metric and SAE fastener specifications
- Pre-configured material profiles
-
Extensible Architecture
- Modular design with 11 specialized engineering modules
- Plugin-ready node system for visual programming
- Clean separation of concerns
๐๏ธ Architecture Overview
GM_modules - Core Engineering Libraries
What it is: The programmatic foundation of GearMaster. A collection of 11 specialized Python modules providing direct APIs for engineering calculations and operations.
Use Cases:
- Automated batch analysis scripts
- Integration with other Python tools/frameworks
- Custom simulation workflows
- CI/CD pipelines and testing
Available Modules:
| Module | Purpose | Key Classes/Functions |
|---|---|---|
| Data | Multi-format data management (CSV, Excel, HDF5, JSON) | DataManager, MultiColumn |
| Signals | Time-series processing, FFT, filtering, analysis | TimeSeriesConverter, TimeSeriesGenerator, DfTm, DsTm |
| Mechanical | Fastener specs, bearing properties, gear calculations | Fasteners, Bearings, MaterialSpecifications |
| Structures | FEA, cross-section properties, structural analysis | FEA Core, Cross-Section Solver, SWA (Strain-based Analysis) |
| Materials | Material property database, specifications | MaterialLibrary, PropertyCalculations |
| Hydraulic | Hydraulic component modeling | Cylinders, Motors, Valves, Manifolds |
| Fea | Finite Element Analysis framework | Mesh utilities, Element definitions, Solvers |
| Cad | CAD geometry operations | Geometric primitives, Boolean operations |
| pyAnsys | Ansys/PyDPF integration | DPF Core, DPF Post-processing, Result parsing |
| Meshless | Meshless numerical methods | Meshless algorithms, Geometry utilities |
| GUIs | Reusable GUI components | Custom widgets, dialog templates |
Example Usage:
from GM_modules.Signals import TimeSeriesGenerator, DfTm
from GM_modules.Data import DataManager
from GM_modules.Structures import FEA
# Create time series data
gen = TimeSeriesGenerator()
signal = gen.create_sine_wave(frequency=50, amplitude=1.0, duration=10)
# Manage data
dm = DataManager()
dm.import_data(signal)
# Analyze structure
fea = FEA()
results = fea.analyze_beam(length=1.0, load=1000)
GM_Visual - Node-Based Visual Programming System
What it is: An interactive visual programming interface built on GM_modules. Use drag-and-drop nodes to create complex engineering workflows without writing code.
Use Cases:
- Interactive analysis and exploration
- Non-programmer engineers creating workflows
- Educational demonstrations
- Rapid prototyping of analysis pipelines
Key Features:
- Node Canvas: Drag-and-drop node-based programming
- Node Library: Pre-built nodes for all GM_modules functions
- Project Management: Save/load workflows as
.gmvprojfiles - Live Execution: Execute workflows with real-time result visualization
- CustomTkinter UI: Modern, responsive interface
- Debug Terminal: In-app logging and error tracking
Node Categories:
- Data Input/Output nodes
- Signal Processing nodes
- FEA/Structural Analysis nodes
- Mechanical Component nodes
- Material Property nodes
- Hydraulic System nodes
- Visualization nodes
- Custom nodes (extensible)
Example Workflow:
[CSV Loader] โ [Time-Series Generator] โ [FFT Analysis] โ [Plot Results]
Launch:
python -m GM_Visual.main
# or
python GM_Visual/main.py
๐ฆ Installation
From PyPI (When Published)
# Core installation
pip install gearmaster
# With Ansys DPF support
pip install gearmaster[ansys]
# With visual programming interface
pip install gearmaster[visual]
# Complete installation
pip install gearmaster[visual,ansys,data]
From Source (Development)
git clone https://github.com/simoneluce/GearMaster.git
cd GearMaster
# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in development mode with all features
pip install -e ".[visual,ansys,data,dev]"
Requirements
- Python: 3.9 or higher
- Core Dependencies: NumPy, Pandas, SciPy, Matplotlib
- Optional: Ansys DPF (for
pyAnsysandStructuresmodules)
๐ Quick Start
Using GM_modules (Programmatic)
# Import a module
from GM_modules.Signals import TimeSeriesGenerator, DfTm
from GM_modules.Materials import MaterialLibrary
# Create engineering objects
time_gen = TimeSeriesGenerator()
mat_lib = MaterialLibrary()
# Access functionality
signal = time_gen.create_sine_wave(freq=10, duration=5)
steel = mat_lib.get_material("Steel_AISI_1045")
print(f"Signal length: {len(signal)}")
print(f"Steel yield: {steel.yield_strength} MPa")
Using GM_Visual (Interactive)
# Start the visual programming interface
python -m GM_Visual.main
# Then in the GUI:
# 1. Create New Project
# 2. Drag nodes from right panel to canvas
# 3. Connect nodes by dragging pins
# 4. Click Run โ Run All to execute workflow
# 5. View results in execution terminal
๐ Project Structure
GearMaster/
โโโ GM_modules/ # Core engineering libraries
โ โโโ Signals/ # Signal processing & time-series
โ โโโ Structures/ # FEA and structural analysis
โ โโโ Mechanical/ # Mechanical components
โ โโโ Materials/ # Material properties
โ โโโ Hydraulic/ # Hydraulic systems
โ โโโ Data/ # Data management
โ โโโ Cad/ # CAD operations
โ โโโ Fea/ # FEA framework
โ โโโ pyAnsys/ # Ansys DPF integration
โ โโโ Meshless/ # Meshless methods
โ โโโ GUIs/ # GUI components
โ
โโโ GM_Visual/ # Visual programming system
โ โโโ src/ # Source code
โ โ โโโ nodes/ # Node definitions
โ โ โโโ canvas/ # Canvas implementation
โ โ โโโ core/ # Core systems
โ โ โโโ ...
โ โโโ tests/ # Test suite
โ โโโ main.py # Application entry point
โ โโโ requirements.txt # Visual-specific deps
โ
โโโ docs/ # Documentation (mkdocs)
โโโ tests/ # Integration tests
โโโ pyproject.toml # Python packaging config
โโโ requirements.txt # All dependencies
โโโ README.md # This file
๐ Differences: GM_modules vs GM_Visual
| Aspect | GM_modules | GM_Visual |
|---|---|---|
| Interface | Python API (programmatic) | GUI (node-based) |
| Usage | Code-driven automation | Drag-and-drop workflows |
| Target User | Programmers, Engineers, Researchers | Engineers, Analysts |
| Extensibility | Easy - add Python functions | Moderate - create custom nodes |
| Performance | Native Python speed | Slight overhead from GUI |
| Dependency Stack | Lightweight core | Requires CustomTkinter |
| Data Flow | Direct function calls | Visual connections (pins) |
| Debugging | Python debuggers, logging | Built-in terminal, node debugging |
| Version Lock | Version 0.102.1 | Version 0.7.7 |
| Learning Curve | Python knowledge required | Visual intuition required |
When to Use What
Choose GM_modules when:
- โ Automating repetitive analysis tasks
- โ Integrating with other Python libraries
- โ Building production pipelines
- โ Requiring maximum performance
- โ You're comfortable with Python
Choose GM_Visual when:
- โ Exploring data interactively
- โ Prototyping workflows quickly
- โ Team includes non-programmers
- โ Teaching engineering concepts
- โ Need visual feedback on workflows
๐งช Testing
# Run all tests
pytest
# Run tests for specific module
pytest tests/ GM_modules/Signals/tests/
# With coverage report
pytest --cov=GM_modules --cov-report=html
Tests follow pytest conventions with test_*.py files.
๐ Documentation
Full documentation available via MkDocs:
# Install docs dependencies
pip install gearmaster[docs]
# Serve documentation locally
mkdocs serve
# Build static docs
mkdocs build
Visit docs/ for detailed module documentation, tutorials, and API reference.
๐ค Contributing
We welcome contributions! Before starting work on a new module:
โ ๏ธ Please contact the owner before starting a new module or making major changes.
- Create a feature branch from
develop - Implement your changes following the repository style
- Add tests in the appropriate
tests/folder - Update documentation in the corresponding
docs/folder - Submit a pull request against
developbranch
Coding Standards:
- Python 3.9+ compatible
- Use type hints where possible
- Follow PEP 8 style guide
- Document all public APIs
- Include unit tests (pytest)
๐ Module Development Guide
Each module follows a standard structure:
ModuleName/
โโโ __init__.py # Module exports
โโโ core.py # Main functionality
โโโ [other core files].py
โโโ tests/ # pytest test files
โ โโโ test_*.py
โโโ docs/ # Module documentation
โ โโโ [module].md
โโโ version.py # Version info
๐ License
MIT License - See LICENSE file for details.
๐ค Author
Simone Lucertini
- Repository: github.com/simoneluce/GearMaster
โ ๏ธ Status
Current Version: 0.102.1
Status: Alpha (under active development)
This project is actively maintained. Features and APIs may change. For production use, pin to a specific version.
๐ Related Projects
- machinesim: Machine simulation framework
- telematics: Telemetry and data logging system
๐ Support
- ๐ง Create an issue on GitHub for bug reports
- ๐ฌ Discussions for feature requests
- ๐ Check documentation in
docs/folder
Happy analyzing! ๐
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gearmaster-0.1.1.tar.gz.
File metadata
- Download URL: gearmaster-0.1.1.tar.gz
- Upload date:
- Size: 28.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aec94b6dcadebd08f6ad3aab7dfe9217b1459772d32083bdfed2513b6bec1c0e
|
|
| MD5 |
927d1ca53cdbeac58fca584709603d8e
|
|
| BLAKE2b-256 |
b1a19fdc86688721a48bc228290d837440eeb173c829515c403fc00cd8328cb6
|
Provenance
The following attestation bundles were made for gearmaster-0.1.1.tar.gz:
Publisher:
publish.yml on simoneluce/GearMaster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gearmaster-0.1.1.tar.gz -
Subject digest:
aec94b6dcadebd08f6ad3aab7dfe9217b1459772d32083bdfed2513b6bec1c0e - Sigstore transparency entry: 1123264776
- Sigstore integration time:
-
Permalink:
simoneluce/GearMaster@5df3da76f7337187119f2d0253c26afef537eff4 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/simoneluce
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5df3da76f7337187119f2d0253c26afef537eff4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file gearmaster-0.1.1-py3-none-any.whl.
File metadata
- Download URL: gearmaster-0.1.1-py3-none-any.whl
- Upload date:
- Size: 28.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a4fae77b6427c436809a0682dabac8beea9051b9f6e3f8ff435ed07f8f32a77
|
|
| MD5 |
7d1feb2f23defedf1ec3b5df705fb538
|
|
| BLAKE2b-256 |
2eacfc27138b41839957385ecb240667de7e68ee28ff3f708f9096976e7ff76d
|
Provenance
The following attestation bundles were made for gearmaster-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on simoneluce/GearMaster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gearmaster-0.1.1-py3-none-any.whl -
Subject digest:
1a4fae77b6427c436809a0682dabac8beea9051b9f6e3f8ff435ed07f8f32a77 - Sigstore transparency entry: 1123264782
- Sigstore integration time:
-
Permalink:
simoneluce/GearMaster@5df3da76f7337187119f2d0253c26afef537eff4 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/simoneluce
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5df3da76f7337187119f2d0253c26afef537eff4 -
Trigger Event:
push
-
Statement type: