Releases: quantumnic/lasermac
v0.4.3 — AI CLI interface
lasermac-cli — AI-friendly command-line interface
Control your laser engraver programmatically from scripts and AI agents.
Commands
- Connection:
connect,disconnect,status,ports - Machine control:
home,unlock,reset,origin,goto,jog - Laser:
laser-on,laser-off,laser-test - Jobs:
send(file or raw gcode),burn-text,burn-rect,burn-circle,frame - Settings:
settings,set,detect - Profiles:
profile list/save/load
Features
- All output is JSON by default (perfect for AI tool calls)
--plainflag for human-readable output- State persistence in
~/.lasermac/cli_state.json - Built-in single-stroke font for text engraving
- Circle approximation with configurable segments
Install
pip install lasermac
lasermac-cli --helpv0.4.2 — Larger sliders
UX Fix: Sliders are now bigger and easier to use
- Height 20px (was ~14px) — much easier to grab
- Bigger handle (button_length=16)
- Wider track in draw canvas (100→160px for main sliders)
- Better value label — fits '10000 mm/min' without truncation
- Tested on Python 3.12 (Anaconda) before release ✅
pip install --upgrade "git+https://github.com/quantumnic/lasermac@v0.4.2"
lasermacv0.4.1 — Startup crash fix
Fixes startup crash on all Python versions.
Invalid height_override argument removed from CTkButton call. Tested on Python 3.12 (Anaconda) before release.
pip install --upgrade git+https://github.com/quantumnic/lasermac
lasermacv0.4.0 — Modern Dark UI
Complete UI Redesign 🎨
LaserMac now looks and feels like a professional macOS laser engraver app.
New
- Theme system (
theme.py): Centralized dark color palette with laser-orange accent (#FF6B35), consistent typography, and reusable component styles - 3-column layout: Sidebar (240px) | Canvas (grows) | Properties Panel (280px)
- Toolbar: File ops (Open/Save/Export) + Job control (Start/Pause/Stop) + Frame + time estimate
- Status bar: Live connection state, machine position, spindle/feed, time estimate
- Properties panel: Context-aware settings for Cut/Engrave/Mark with LabeledSlider components
- Card components: Rounded corners, subtle borders, section headers
- StatusPill: Colored connection state indicator
- OperationButton: Large toggle buttons with operation-specific colors
- LabeledSlider: Slider with live value display and unit labels
Changed
- All widgets themed with consistent
COLORS/FONTSfromtheme.py - Canvas: dark background (
#0A0A0A), subtle grid lines (#1A1A1A) - Operation buttons: colored active state, muted inactive
- Tool buttons: accent highlight for active tool
- Jog pad: compact themed buttons with orange home button
- Console: dark mono-styled log with themed input
Tests
All 135 tests passing ✅
v0.3.1 — Hotfix: startup crash fixed
Bugfix
Fixes startup crash: AttributeError: 'bind_all' is not allowed
CustomTkinter >= 5.x does not allow bind_all(). Fixed by using canvas.bind() instead. Added macOS Cmd+Z/Y shortcuts for undo/redo.
Update
pip install --upgrade git+https://github.com/quantumnic/lasermac
lasermacv0.3.0 — Operation-Centric Major Expansion
🔥 LaserMac v0.3.0 — CUT / ENGRAVE / MARK
The core UX: every shape has an operation type that you see at a glance on the canvas.
✂️ CUT (Red)
- Slow speed (F100-400), max power (S800-1000), multi-pass (1-10x)
- Outline only — no fill. For cutting through material.
✏️ ENGRAVE (Blue)
- Medium speed (F500-3000), medium power (S200-700)
- Supports fill patterns: lines, schraffur (45°), cross-hatch
- For burning logos, text, images into material.
🖊️ MARK (Green)
- Fast speed (F3000+), low power (S50-200)
- Surface marking only.
G-code Export Order
Mark → Engrave → Cut (cut always last!)
Prevents cuts from shifting material before engraving finishes.
New Features
- 🎯 Per-shape operation settings (speed, power, passes, fill)
- 🎨 Color-coded canvas (red/blue/green = instant visual feedback)
- 🖼️ 5 image dithering modes (threshold, Floyd-Steinberg, Bayer, Jarvis, grayscale)
- ⚡ Power tester grid (speed × power matrix)
- 💾 Machine profiles (~/.lasermac/profiles/)
- 📁 Project save/load (.lmc format)
- 🔧 G-code export with headers (bounds, time estimate, machine info)
- 📊 Brightness/contrast/gamma image adjustments
Stats
- 135 tests (was 67), all passing
- +1800 lines of new code
- 4 new modules: layers, profiles, project, power_tester
v0.2.0 — Drawing Canvas + Auto-Update + Jog Fix
What's new
✏️ Drawing Canvas
- Draw directly in LaserMac: freehand, line, rectangle, circle
- Undo/Redo (Ctrl+Z / Ctrl+Y)
- "Burn This!" button — sends drawing straight to laser
- Speed + Power sliders before burning
- Save as SVG or G-code
🔔 Auto-Update
- App checks GitHub on startup for new versions
- Banner appears when update is available
- Help → Check for Updates
🐛 Jog Fix (Totem S)
- Fixed X-axis (left/right) jog for GRBL 1.1 compatibility (added G21 mm mode)
- New Invert X / Invert Y checkboxes — fix mirrored axis in one click
- Y+/Y- was already working correctly
Install / Update
pip install git+https://github.com/quantumnic/lasermacOr if already installed:
pip install --upgrade git+https://github.com/quantumnic/lasermacv0.1.0 — Initial release
🔥 LaserMac v0.1.0 — Free macOS laser engraver controller for GRBL machines
Features
- Serial connection with auto-detect ports
- GRBL console with quick commands (Home, Unlock, Reset)
- Jog controls (X/Y/Z) with configurable step sizes
- G-code file loading (.nc, .gcode, .gc)
- Image → G-code conversion (threshold, Floyd-Steinberg, grayscale)
- SVG → G-code vector cutting
- Matplotlib toolpath preview
- Job control: Start/Pause/Stop with progress bar
- Laser test with power/speed sliders
- Frame tracing (bounding box preview)
Supported Machines
Totem S, xTool, Ortur, Atomstack, Sculpfun, and any GRBL-compatible device.
Install
pip install lasermac
lasermac