HAM Lab Controller is a desktop engineering application for process planning, simulation, and reporting in high-sensitivity manufacturing workflows.
It provides a unified interface for:
- FSW process simulation
- WAAM energy and deposition planning
- PM consolidation analysis
- Cross-process comparative studies
- PDF report generation
- In-app documentation access
This software is designed for technical and operational decisions where model outputs can affect process parameters, planning strategy, and documentation quality. Because it may involve sensitive project information, this repository is distributed as proprietary software.
- Multi-panel simulation cockpit (FSW, WAAM, PM, Compare)
- Layer-wise calculations and plotted process trends
- Structured PDF export workflows
- Built-in documentation launcher
- GitHub release update detection with one-click installer launch
- Windows installer generation for easy deployment
flowchart LR
A[HAMLab.exe GUI] --> B[Simulation Core]
B --> C[FSW Module]
B --> D[WAAM Module]
B --> E[PM Module]
B --> F[Compare Module]
A --> G[Report Engine - FPDF]
A --> H[Documentation Panel]
H --> I[docs/HAMLAB_Documentation.pdf]
hamlab.py: Stable launcher entrypointhamlab_v2_3.py: Main application UI + simulation logicdocs/HAMLAB_Documentation.pdf: Bundled technical documentationrequirements.txt: Python dependency listbuild_installer.bat: Builds app package and installerinstaller/HAMLAB_Setup.iss: Inno Setup script
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtpython hamlab.pyRun the complete build pipeline:
.\build_installer.batThis performs:
- Dependency sync.
- PyInstaller build for
dist/HAMLab/HAMLab.exe. - Documentation file packaging.
- Inno Setup compile for
dist/installer/HAMLab_Setup_v2_3.exe.
- App executable folder build:
dist/HAMLab/HAMLab.exe
- Shareable installer executable:
dist/installer/HAMLab_Setup_v2_3.exe
The app checks GitHub for the latest release and shows update status in the top bar.
How it works:
- App queries the latest release from
anshubhawsar/Hamlab_controller. - If release tag is newer than current app version, it enables
Install Update. - Clicking
Install Updatedownloads the latest setup.exeand launches installer.
Important:
- Publish updates using GitHub Releases (with a version tag like
v2.4). - Attach the installer
.exeasset (setup/installer name ending with.exe). - If no release installer asset exists, app cannot auto-install update.
For full release instructions, see: docs/UPDATER_FLOW.md
Standard release flow:
- Update version constant in
hamlab_v2_3.py. - Rebuild using
build_installer.bat. - Commit source changes.
- Create a tag and GitHub release.
- Upload installer artifact from
dist/installer.
This project can be used in engineering contexts with sensitive process information.
Recommended practices:
- Do not commit confidential data or customer datasets.
- Use private repositories for internal variants.
- Restrict installer distribution to authorized recipients.
- Apply code-signing certificates for production deployment.
Copyright (c) 2026 HAM Lab Engineering. All rights reserved.
This repository is proprietary and confidential. Unauthorized copying, modification, reverse engineering, redistribution, or use is prohibited except with prior written permission.
See:
LICENSECOPYRIGHT.md