Skip to main content

Complete Engineering Analysis Suite for mechanical systems simulation, CAD, FEA, and signal processing

Project description

GearMaster - Complete Engineering Analysis Suite

Python Version License Status

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_modules for automation and scripting
    • Visual: Node-based visual programming via GM_Visual for interactive workflows
  • 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 .gmvproj files
  • 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 pyAnsys and Structures modules)

๐Ÿš€ 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.

  1. Create a feature branch from develop
  2. Implement your changes following the repository style
  3. Add tests in the appropriate tests/ folder
  4. Update documentation in the corresponding docs/ folder
  5. Submit a pull request against develop branch

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


โš ๏ธ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gearmaster-0.2.0.tar.gz (37.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gearmaster-0.2.0-py3-none-any.whl (37.9 MB view details)

Uploaded Python 3

File details

Details for the file gearmaster-0.2.0.tar.gz.

File metadata

  • Download URL: gearmaster-0.2.0.tar.gz
  • Upload date:
  • Size: 37.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gearmaster-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4004667e79661e6a9c5972de06179a99e7363a7281c8f0281fd5bd107b67a118
MD5 74d4a01fb438c3b0407bf52145409f8e
BLAKE2b-256 2a0198cba6f70373c4f833e97ec318ff897bebf5d6876907d00892898b2e164d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gearmaster-0.2.0.tar.gz:

Publisher: publish.yml on simoneluce/GearMaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gearmaster-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: gearmaster-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 37.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gearmaster-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 63ef35ab9bbbcccc85705ffd78af2e1d349d7bd0e6cd3b70a08c8cd7a6dfc745
MD5 df6778bacc1e7d3f428b55805ca890ac
BLAKE2b-256 d36920c86ceca303473093dc2221ff7edcb414d3e791ba2b14a7853cc8df27eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for gearmaster-0.2.0-py3-none-any.whl:

Publisher: publish.yml on simoneluce/GearMaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page