All notable changes to Rayforge will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- 3D canvas: better line width for rendered ops
- GRBL serial not connecting (#196)
- Auto brightness toggle setting not remembered in raster step settings
- 3D simulator with full playback: play/pause, step forward/backward, scrubber, and speed control (1x to 16x)
- End-to-end bezier curve support (G5) through the entire pipeline, from import to G-code output
- No-go zones: define restricted areas in machine settings with collision checking
- 3D model support for rotary axes (GLB format) with shading and proper coloring
- Global model manager for storing and reusing 3D models across machines
- Import dialog now offers three layer modes: flatten, merge to existing, or create new layers
- Imported layers automatically get sensible default workflow steps
- Dockable bottom panel: tabs can be rearranged freely and split into separate columns
- Layer list moved into the bottom panel with drag-and-drop from asset list
- Asset browser overhaul: all assets visible, multi-selection, drag to canvas, thumbnails for most image formats, helpful empty-state placeholder
- Lead-in / lead-out postprocessor for zero-power approach and exit moves
- Material test: labels engraved first for cleaner results
- Material test: overscan transformer support
- Material test: independent label engraving speed setting
- Ctrl+F search in console and G-code viewer
- Addons can register their own toggles in the View menu
- YUYV camera protocol support
- Canvas remembers state of view toggles between sessions
- Double clicking a stock asset opens its properties
- Drag assets from the asset list to the layer list
- Continuous laser mode and modal feedrate G-code options
- GRBL raster dialect that omits unnecessary M4/M5 spindle commands
- Grbl MKS DLC32 machine profile
- Laser head model rendered in the 3D simulator
- Canvas is significantly more responsive during drag, pan, and zoom operations by suppressing expensive path rendering until interaction stops
- Multi-step workflows composite into a single surface for faster rendering
- Large images are automatically scaled to prevent multi-gigabyte memory spikes
- Image handling rewritten to avoid unnecessary copies, reducing overall RAM usage
- Smarter caching: base images cached on source assets and reused across workpieces
- Cache memory limit in the 2D canvas prevents unbounded memory growth
- Time estimation updates instantly instead of recomputing from scratch
- Pipeline recalculation can now be toggled off in settings
- Status bar removed; machining time moved to layer list header, ETA to machine dropdown, status messages to canvas overlay
- Visibility toggles for perspective, model, and no-go zones moved to canvas overlays
- Rows in main window expanders are more compact
- Bottom panel layout of coordinate controls and jog widget is responsive
- Decreased default merge lines tolerance to 0.01
- Crop-to-stock now crops to workarea if no stock is defined in the document
- Illustrator files now use correct 72 DPI instead of 70
- Race condition causing 2D canvas re-renders to hang
- Race condition in doceditor.wait_until_settled_sync()
- Status overlay displayed even when no message was set
- Stale job shown in 3D canvas after changes
- 3D canvas not showing dimmed versions of travel moves
- Wide strokes rendered incorrectly in import dialog preview
- Item layers not added when importing from the command line
- Tabs cutting paths in more than one place
- Addon installation failing in Snap packages
- 2D and 3D canvas stealing focus from the sketcher
- Sketch parameters could not be edited in the properties panel
- Crop-to-stock linearized arcs unnecessarily
- Deadlock when switching WCS while 3D canvas visible
- 3D canvas not updating fully after hardware changes
- Toggling no-go zones off undimmed vertices in the 3D canvas
- Mapping of stepped down vertices in rotary mode
- Drag and drop bug in the asset browser
- No G-code output if document contained an empty layer
- Editing machine settings resetting the canvas perspective
- Single instance lock: second window now gracefully exits
- Two memory leaks in the 3D simulator (shared memory and shader)
- 3D canvas empty if G-code viewer was not open
- PDF import now falls back to
fitzwhenpymupdfis not installed (#186) - DPI setting in the SVG import dialog is now persistent between sessions
- Full rotary axis support with 3D visualization
- Support for multiple rotary modules
- Configurable rotary mode per layer
- Rotary icon displayed on rotary layers
- PDF direct vector import with layer support
- Improved five factor camera de-distortion algorithm
- Charuco card based calibration wizard with guided setup process
- Sketcher: ellipse tool replaces circle tool for more flexibility
- Sketcher: many tools automatically constrain geometry during creation
- Sketcher: magnetic snap now works while creating geometry
- Sketcher: replaced snap to grid with smarter magnetic snap
- Sketcher: equality constraint now works on ellipses
- Configure frame speed in laser head settings
- Corner dwell time setting for framing
- Repeat count setting for framing
- New merge lines post-processor to avoid double cutting
- Machine profile for Acmer S1 added
- Dialects support separate laser on command for focusing
- Add a DPI setting to the SVG import dialog if the SVG is unitless
- More compact left panel layout with add buttons moved into group headers
- G-code viewer moved into the bottom panel
- 3D canvas performance improvements
- Dialects are now isolated copies (templates)
- GRBL buffer size tracking improved
- Texture dimension limit prevents memory exhaustion
- Addon manager: safer threading approach
- Material test producer bugs (issues #181 and #182)
- GRBL position reporting for machines with only X and Y axes (#179)
- Sketcher: distance constraint shadowing the line
- Texture renderer memory exhaustion on large images
- Race condition in worker initialization
- Raster step settings now display angle numerically
- Import issues on Windows
- Unknown G-code dialects now fall back to Grbl instead of causing errors
- Duplicate error notifications from the driver
- Icon sizing issues on systems with Gtk 4.21
- Windows and macOS build issues
- Conflicting menu shortcuts in the sketcher
- Sketcher: full support for bezier curves with intuitive handle-based editing
- Sketcher: new unified path tool that combines lines and curves
- Sketcher: grid tool for visual reference and alignment
- Sketcher: toggle buttons to show/hide construction geometry and constraints
- Sketcher: hold Shift to constrain movement to the nearest axis
- Sketcher: endpoints connected by coincident constraint can be made smooth or symmetric
- Sketcher: "straighten" tool to convert bezier curves to straight lines
- Sketcher: path edit tool can now connect to existing points
- Sketcher: conflicting constraints now shown in the panel
- Raster operation: sample interval and power levels settings
- G-code viewer now shows line count and byte size
- Sketcher moved to an add-on (installed and enabled by default)
- G-code now omits unchanged coordinates for more compact output
- Removed obsolete "no-Z" G-code dialect variants
- G-code viewer always shows at least the first 20,000 lines
- Sketcher: hide gray background area for cleaner editing
- AI workpiece generator now creates sketches when geometry can be mapped
- Most icons not displayed on systems with Gtk 4.21 or higher
- Fillet and chamfer tools not working correctly
- Texture encoder drawing spaced dots instead of lines in some cases
- G1 emitted without coordinates when all coordinates unchanged
- Loading project files with unknown assets
- Buttons to move to center, bottom/left and top/right of workpiece
- Support for setting a "tab power"
- Sketcher: allow entering dimensions while adding geometry
- Better button layout in the control panel
- Sketcher: circle now uses diameter constraint consistently, not sometimes radius
- Laser dot now always drawn on top, not obscured by workpieces
- Builtin addon yaml files not included in .snap
- Imprecise tab location while dragging the tab handle
- Tabs not working on beziers
- AI workpiece generation
- Camera image enhancement with temporal noise reduction (thanks to MausRundung)
- Fisheye lens distortion correction with radial and tangential parameters (thanks to MausRundung)
- Zoom, pan and keyboard navigation in camera alignment dialog (thanks to MausRundung)
- Complete addon system rewrite and refactoring
- Tons of new materials in core materials addon
- Sketcher: live preview for line tool
- Sketcher: show dimensions while adding geometry
- Sketcher: snap-to-grid on Ctrl press
- Sketcher: highlight hovered entities and constraints
- Sketcher: toolbar shows currently available shortcuts
- Sketcher: Shift+Double click selects connected geometry
- Sketcher: allow arc radius changes while adding second arc endpoint
- Path optimizer now also optimizes inter-workpiece travel
- Mach4 G-code dialect
- Post-processor: crop-to-stock
- Click canvas to set zero feature
- Support for configuring cut/raster colors per laser
- Support for duplicating stock and non-rectangular stock
- Convert workpiece to stock (right-click menu)
- RAYFORGE_DISABLE_3D environment variable
- Machine profile for OMTech K40+
- Navigation and zoom icons for UI controls
- Stock is now a document-level concept - no more stock per layer
- Improved camera selection dialog (left/right indicators, keyboard support)
- Imported items and stock now aligned with WCS origin by default
- Stock placed at WCS origin by default
- Sketcher: preserve selection when creating lines, arcs, or circles
- Sketcher symmetry constraint click order now aligns with FreeCAD
- Maximum laser G-code power increased to 100.000
- Addon terminology changed from "plugin" to "addon"
- Context now lazy loads most services for better performance
- Undoing text box left entries in history manager stack
- Y axis drawn on wrong side of canvas
- Auto layout for rotated stock
- SVG exporter stacking multiple workpieces on top of each other
- Text color in Sketcher while editing
- When opening project file referencing non-existent laser, assign default laser
- Text box rotates while typing on Windows
- Addon handling issues on Windows
- Narrow macOS app menu window to MainWindow - pgilfernandez
- macOS app menu actions fix - pgilfernandez
- Text box rotating while typing in sketcher
- Assets cannot be deleted after loading from a project file
- Empty sketches showing as black squares after loading from project
- Maybe: Pie menu not opening in correct location on Windows
- Fix screenshot link in appstream file causing Flatpak build to fail.
- Major: MacOS support was added thanks to Github user pgilfernandez!
- Major: Complete data pipeline backend rewrite with improved performance and memory management
- Major: Unified raster operations - the old "raster", "depth", and "dither" operations are now replaced by a single, unified raster operation
- Major: G-code console replacing the log view with a fully featured terminal
- SVG and DXF export support - export your documents or selected objects
- Angle constraints now available in the sketcher
- New "Raster (Dither)" operation type with configurable algorithms
- Built-in G-code dialect supporting dynamic power mode
- Auto thresholding for Variable Power and Multipass raster modes
- Histogram in raster engraver to help setting thresholds
- Symbolic visualization of raster direction in rasterizer
- Configurable line distance in all raster operations
- Axis extents, work surface, and soft limits can now be configured per machine
- RAYFORGE_MAX_WORKERS environment variable to limit the number of processes
- macOS packaging scripts and resources for better platform support
--uiscriptCLI argument for executing scripts after the UI is up- Optional (opt-in) anonymous usage statistic collection
- Material files can now contain translations
- Machine selector moved to the window header for easier access
- G-code viewer and control panel toggles are now independent
- Machine settings dialog reorganized for better clarity
- Pressing "reset position" on a workpiece places it at WCS origin, not machine origin
- Workpiece properties now show the position in WCS coordinates
- Contour and shrinkwrap operations use proper tolerance instead of laser dot size
- Increased maximum laser spot size to 10 mm
- File dialog now selects BMP by default instead of all supported files
- Imported images are now placed at reference origin by default
- Added Ukrainian translations
- Re-assigned Alt key bindings to avoid clashing with main menu actions
- Multiple memory leaks in the data pipeline
- Race conditions between worker pool task completion and pipeline shutdown
- Camera device scanning crash on Windows
- Multipass post-processor exception
- Rasterizer angle causing distortion
- Various macOS issues: shm_open length errors, SVG rendering fallback, keyboard shortcuts
- Workpiece stage not emitting correct node state
- Zoom resolution stuck until resizing at least once
- Blurry view overlay on startup
- Race condition leads to stale vectors for cancelled tasks
- Memory for view artifacts released late
- Unresponsive serial ports now handled gracefully with log message
- Simulation preview strokes now stay constant across zoom levels
- Speed entered in Jog dialog is now correctly converted to base units
- Switching to 3D view sometimes showed no operations
- Some icons not appearing when running the snap on non-GNOME environments
- GRBL connection handshake timeout handled with backoff retry
- Some strings were not translatable
- Reformatted the 1.0 appstream release notes to not trip the Flatpak build up
- Major: Project save/load support
- Major: The sketcher now supports text, with many bells and whistles
- Major: The jog dialog has been merged together with the log view into a bottom panel
- Sketcher supports aspect ratio constraints
- Engraving steps now have an invert setting
- The raster engraver now supports setting the engraving angle in degrees
- A recent files menu entry was added
- Installers for all platforms now register the .ryp (project) and .rfs (sketch) file extensions
- Command line interface:
--direct-vectorrenamed to--vector; added--traceto force trace mode. Default is now to try vector import first, falling back to trace if not supported - Import errors now collected and displayed in import dialog
- Importers almost completely rewritten for testability
- Sketcher: The solver now biases points to their previous position for more stable dragging
- Simulation mode keyboard shortcut changed to F11 to avoid conflic with "Save as..."
- Remember G-code view and control panel visibility across sessions
- Increased precision of power sliders and display digits everywhere
- Import dialog now shows number of vectors per layer
- Error message shown when attempting to delete a dialect that is in use
- Chinese translations were added
- When opening bitmap images from CLI, default to import the whole image, not tracing
- Traceback in the sketcher when adding a constraint (affected Windows build only)
- Fixed a potential memory leak and stale ops display
- Multi layer DXF import
- Numerous alignment bugs in importers
- Traceback when using invert switch in import dialog
- Sketches not properly centered on the surface after import
- Updated importer developer documentation
- Added hicolor-icon-theme dependency to snap build
- Traceback when dialect contained deprecated attributes
- Debian package missing asyncudp dependency
- Option to enable/disable WCS injection in G-code dialect
- Depth engraver not respecting master power setting
- Traceback when using invert image in import dialog
- Test that depended on specific version string
- Invalid ampersand in appstream XML
- Full support for Work Coordinate Systems (WCS) G54-G59
- "Set Origin Here" button to define temporary work zero at any point
- Visual feedback with active WCS origin marked on 2D canvas
- 3D view renders geometry relative to active WCS
- WCS integrated across G-code encoder, 2D/3D views, and GRBL drivers
- Ability to create set G-code offsets in machine settings
- Offline configuration of WCS settings and offsets
- True arc support and superior geometry handling
- DXF and SVG importers now preserve arcs and bezier curves
- Machine settings to configure arc support and tolerance
- Non-uniform scaling of designs with arcs handled gracefully
- Package Manager for extensibility
- Install, update, and manage extensions
- Automatic update checks on startup
- New Sketcher tools
- Rectangle tool with support for rounded rectangles
- Fillet tool for rounded corners
- Chamfer tool for beveled corners
- Machine connectivity improvements
- Configurable GRBL polling (disable during job runs)
- GRBL corruption detection
- GRBL error messages more descriptive
- Support for reading WCO and extended status fields
- User interface enhancements
- "Import whole image" checkbox for direct raster import
- Multi-layer SVG import option
- Supporter recognition section in About dialog
- Maintenance counter alerts link to maintenance counter page
- Sketch instances automatically added to document on creation
- G-code generator now strips unneeded trailing zeros
- Diagonal jogging now jogs in a direct line instead of two separate commands
- Connection and device errors displayed prominently next to device selector
- Debug log button moved from log view to help menu
- Stock list and sketch list merged into unified asset list
- Importing complex DXF and SVG files is now significantly faster
- Makera Air G-code now uses inline power commands
- G-code dialect editor now checks variable existence and bracket balance
- Job Control & Safety
- Application getting stuck in "Running" state after job cancellation
- Race condition where driver alarms might self-clear
- Framing
- Runaway issue with framing position drifting cumulatively
- Framing bounds calculation for full circles
- Machine & Drivers
- Position reporting not updating until machine settings saved
- Import Fixes
- SVG import dialog not allowing direct vector import of SVGs without layers
- Vector misalignment when importing certain SVG files
- DXF import failing on files with blocks containing solid fills
- Raster image with tracing threshold set to 1 not importing full image
- Platform-Specific Fixes
- (Windows) Dialog closing passing focus to wrong window
- (Windows) PNG files not opening via file selector
- General Fixes
- Duplicate axis labels drawn on canvas
- Depth Engraver treating semi-transparent pixels as black
- Material test grid including invalid power on/off toggles
- Laser position indicator updating infrequently or moving wrong direction
- Incorrect position readout in Jog dialog
- Inconsistent button states during G-code job execution
- Recipes not saved correctly when creating from step settings dialog
- Multi-layer SVGs incorrectly imported as single layer
- Coordinate systems issues for machines with negative axes
- G-code dialect changes not applied without restart
- Selected laser parameters not loading initially in machine settings UI
- Imported SVGs not scaled correctly when resized non-uniformly
- 3D canvas turntable rotation broken
- Axis grid not aligned for machines without bottom left origin
- Tracebacks and crashes in machine settings dialog and G-code generation
pluggyandGitPythondependencies not included in Debian package
- Importing complex SVG files is now significantly faster through intelligent path simplification
- SVG files with complex or invalid clipping paths rendered incorrectly
- Fills in sketches loaded from disk could not be toggled on or off
- On-screen position of laser dot not taking machine's configured origin into account
- Expressions and parameters in sketches
- Expression editor with syntax highlighting and auto-completion
- Instance parameters for each sketch instance
- Filled shapes support in sketcher
- Rounded rectangle tool
- Drag-select for multiple sketch elements
- Variable substitutions in preamble and postscript G-code sections
- Support for machines with top-right and bottom-right origins
- Negative axis support
- Configurable single-axis homing option
- Machine hours recording support
- Intro video to homepage
- Sketches treated as "templates" that can be placed multiple times
- Sketch parameters have dedicated section in properties panel
- Construction line dash lengths measured in pixels for consistent look
- Double-clicking stock opens stock properties
Ctrl+Nshortcut for creating new sketch- "Preferences" renamed to "Settings"
- "Edit Recipe" dialog uses three tabs: General, Applicability, Settings to Apply
ESCandCtrl+Wclose machine settings- Machine settings menu entry cleaned up by removing "..."
- Raster import dialog renamed to "Import Dialog"
- Export sketch default location is original import location
- Many icons replaced with built-in icons
- Machine settings dialog redesigned for clearer layout
- Dark mode text readability improvements
- Asset list unified (stock and sketch lists merged)
- "New Sketch" button removed from main toolbar
- Main window no longer updates unnecessarily on workpiece transforms
- Import dialog not working correctly for many file formats
- Focus-related bugs in sketcher
- Sketches not resizable using drag and drop
- Editing sketch resetting instance's size on canvas
- Distance constraints not selectable or highlighting on hover
- Arcs going in wrong direction in sketch-generated geometry
- Titles from varset not properly escaped
- "Reverse axis" setting affecting G-code output
- Race condition in GRBL serial driver
- Boolean variables in device settings not applied
- Key text in simulation mode not readable in dark mode
- Popover not readable in dark mode in camera alignment dialog
- Laser dot drawn too large
- Varset variables with type Var not subclassed showing as "unsupported"
- Menu not closing when clicking surface
- Missing icons on some Linux distributions
- Race condition in tasker test
- Expression editor not closing when pressing enter
- Sketch not using input parameters
- Varset out of sync after var key rename
- Dragging sketches to surface failing
- Step list drag & drop reordering broken
- Sketches not positioned at center of sketcher surface when re-editing
- Excessive linearization precision causing lag
- Pyright detecting invalid
strargument in machine dialect definition - Perpendicular constraint hit detection
- Radius constraints not always recognized
- Constrained geometry not being green after loading sketch
- Parametric 2D Sketcher
- Create 2D geometry with lines, circles, and arcs
- Constraint system: Coincident, Vertical, Horizontal, Tangent, Perpendicular, Point on Line/Shape, Symmetry, Distance, Diameter, Radius, Equal Length/Radius
- Import/Export sketches with parametric constraints preserved
- Context-aware pie menu for quick tool access
- Keyboard shortcuts inspired by FreeCAD
- Full undo/redo support
- Adaptive precision grid based on zoom level
- Machine profile for Makera Carvera Air CNC machine
- Default cut mode for vector CAM operations changed to 'Centerline'
- Significant performance optimizations for moving, scaling, rotating geometry
- Significantly reduced memory consumption
- Complex vector files handled more smoothly during toolpath generation
- 3D view and G-code output mirrored when using Y-down machine configuration
- Smoothieware driver issues
.dxffiles not visible in import dialog- Save button incorrectly enabled when workflow is empty
- Interactive import dialog with pre-canvas configuration
- Enhanced tracing configuration in import dialog
- Threshold slider for contour operation
- "Object -> Split Workpiece" command
- Groups now have "natural size" property
- Support for configuring custom G-code dialects
- DXF layer support for importing as Groups
- Tracing logic improved for transparent images
- Contour operation now processes inner edges before outer edges (configurable)
- Debouncing in processing pipeline for snappier UI
- Geometry incorrectly removed from vector inputs if cut side not "centerline"
- Items scaled down on import even when fitting machine area
- Step box displaying 0% power regardless of actual setting
- Workpiece operations not drawn correctly when grouping/ungrouping
- Imported images displayed with masks
- Notifications not cleared when user begins editing
- Operation Recipes: Save and reuse operation settings (laser head, speed, power, kerf) for specific operation types
- Automatic recipe selection based on operation type, machine, stock material, and thickness
- Dedicated profile for xTool D1 Pro with updated start G-code macros (M17 and M106)
- Support for configuring specific port numbers for Grbl connections
- Session-based log file system for easier troubleshooting and debugging
- Dialog to display metadata associated with imported images
- Dedicated option to toggle laser on at low power for easy focusing
- Step settings dialog now has tabs, separating post-processing settings
- Windows distribution now uses "onedir" installer bundle for faster startup
- Machine branding strings updated from "Xtool" to "xTool" capitalization
- Macros can now be executed directly from main application menu (Machine -> Macros)
- Various issues causing application crashes on Windows systems
- Race condition in logging setup that could lead to duplicate log entries
- Workpieces retaining stale operation settings after cut and paste to new layer
- "Remove inner edges" function failing to execute correctly
- Tracebacks when copying elements with tabs
- Incorrect tab placement during shrinkwrap or frame operations
- Segmentation fault during certain import scenarios
- Task bar remaining visible after completing import operations
- Global shortcuts incorrectly captured while editing text fields in workpiece properties panel
- Logging reliability by ensuring all logs flushed before application exits
- Crashes on Windows due to Gtk 4 API incompatibility
- Crash when sending job due to not running event loop
- New Windows installer
- French translation
- RayforgeContext object introduced for future API support
- ArtifactStore refactored
- Git command line briefly opening on Windows startup
- Test suite issues on Windows
- "Reset to natural size" buttons not working for DXF and Ruida imports
- Warning for resizing on import now persistent until dismissed
- Debouncing for some step settings
- Bug where two events in rapid succession could cause stale operations
- G-code Viewer & Simulator with full playback and synchronized G-code text
- Depth Engraver operation for multi-pass engravings with varying depths
- Shrink Wrap operation for form-fitting contours
- Frame operation for rectangular frames around workpieces
- Material Test Grid tool for finding optimal power and speed settings
- Material Manager in settings for managing material libraries and materials
- Flip & Mirror tools for horizontal/vertical object flipping
- Engraving overscan option for maintaining constant velocity
- Offset and kerf compensation for cutting operations
- Native importers for JPEG, full-color PNG, and BMP files
- Jog controls dialog for manual laser positioning
- Multi-head laser support with step assignment to specific heads
- Cross-hatch fill option for Raster Engraving operation
- Stock material assignment to individual layers
- Machining time estimate in status bar with progress and ETA during execution
- Preferred length unit setting in preferences
- Machine acceleration values in machine profiles
- Snap to grid functionality (Ctrl key while moving/rotating)
- Adjustable rasterizer threshold with undo/redo support
- French translation
- Backend almost completely redesigned for performance
- Task manager redesigned around process pool
- Toolpath optimizer significantly faster and enabled by default
- Rendering pipeline uses shared memory for faster data transfer
- Tracing engine switched to vtracer for higher quality
- Stock handling completely redesigned
- "Edge" and "Outline" producers merged into single "Contour" operation
- Higher baud rates supported for serial connections
- GRBL streaming protocol supported
- Dependencies not correctly installed when installing with pip
- 3D view not updating correctly when toggling step visibility
- Contour operation now produces path even if offsetting fails
- Traceback when zooming into large workpiece
- Alignment issues across all importers
- PDF importer clipping direction bug
- SVG importer vector alignment problems
- Tabbing system for holding parts in place during cutting
- Flexible configuration (global or per-step)
- Automatic placement
- Manual control via context menu
- Interactive editing with drag handles
- G-code macros and hooks with variable substitution
- Direct SVG vector import option
- Work surface panning smoother
- Grouping and ungrouping faster
- Main menu and toolbar reorganized with keyboard shortcuts
- Global preference for UI speed units
- Step settings dialog closes with Esc or Ctrl+W
- Workpieces automatically scaled down if too large for surface
- DXF and Ruida imports pre-split into component parts
- Auto-layouter respects stock boundaries
- PDF importer auto-crops to content
- Select All (Ctrl+A) not selecting groups correctly
- Misleading error for non-existent serial ports
- Task manager warning on shutdown
- Auto-layouter 90° rotation bug
- Micrometric resolution support for imports and G-code generation
- Configurable decimal places in G-code output
- Stock material area definition
- Device alarm reset button for GRBL machines
- Automatic alarm reset on connection option
- Official PPA for Ubuntu
- Snap package now supports GRBL serial port connections
- Camera backend on Linux defaults to V4L2
- New icons for layers
- Workpiece properties panel reorganized
- Connection and device status messages now translated
- 3D editor switch not working
- Device drivers not shutting down correctly on close
- Flickering "RUN" status with GrblSerial devices
- ImportError when opening the app
- Context menu on work surface (right-click)
- Baud Rate field now a dropdown
- Crash during job execution
- Serial Grbl driver issues
- USB port selection lost when machine disconnected
- Layer list rendering artifacts
- Camera view alignment
- 3D G-Code Previewer with orbit, pan, zoom controls
- Z Step Down per Pass option
- DXF importer with full geometry support
- Ruida (.rd) importer
- Auto-Layout tool
- Shear tool for skewing workpieces
- Grouping and ungrouping support
- ESC key deselects items on canvas
- Smoothing algorithm replaced with more effective version
- Operation generation more efficient
- Invalid G-code when travel speed not set
- On-screen laser dot position slightly misplaced
- Resizing multiple selected objects incorrectly in Y-up mode
- Export Debug Log not working
- Creating new machine from profile failing
- Windows installer issues
- Traceback on Windows startup
- Missing icons on Windows
- New GRBL drivers (Network and Serial Port) with firmware settings UI
- Canvas alignment tools (top, bottom, left, right, center)
- Object distribution tools (horizontal, vertical)
- Ctrl+PageUp/PageDown for moving objects between layers
- Themed icon support for light/dark themes
- Ctrl + < shortcut for machine settings
- Spanish translation
- Canvas and camera stream performance improved
- Default camera overlay opacity 20%
- Status icons replaced with modern symbolic icons
- "Remove All Workpieces" button not working
- Worksteps unnecessarily regenerated when unrelated step removed
- "Smoothness" slider not functional
- Canvas grid aspect ratio issue
- Rendering failure with large on-screen dimensions
- Camera toggle not updating canvas immediately
- On-screen laser dot position
- Custom postscript used even if disabled
- Machine config lost on startup (race condition)
- Home, Pause and Cancel buttons not working
- Laser dot shown in wrong position when zoomed
- --version CLI flag
- Sliders in workstep settings now smoother (debouncing)
- Ops not removed when deleting workpiece
- Performance: removing step no longer re-generates all steps
- Subtitle not showing in driver selection if no driver initially selected
- Experimental GRBL driver
- Performance regression for canvas rendering
- Workstep settings dialog can be moved
- Camera stream not disabling when switching machines
- Performance regression for canvas rendering
- Layer support
- Multi-machine support
- Machine profiles (Sculpfun iCube, Other)
- G-code dialects (Marlin, GRBL, Smoothieware)
- Theme preferences with dark mode improvements
- Debug information collection button in machine view
- Main window panel redesigned
- Paths more precise with reduced rounding errors
- Smoothing algorithm polished
- Camera rendering speed massively improved
- Boundary alignment for rastering with chunked images
- Smoothing angle threshold up to 179 degrees
- Travel optimizer running when disabled
- Driver description not shown in dropdown subtitle
- Undo and redo support for all actions
- Main menu at top of window
- Copy, cut, paste support
- Ctrl+D duplicate shortcut
- Multiple selection in canvas
- Select-by-frame support
- Flipped Y-axis support
- About dialog with version info
- Non-square work surfaces shown as square (now proper aspect ratio)
- Path disappearing when zooming
- Improved resize tool
- Workpiece rotation
- Path smoothing option in work step dialog
- Better progress bar with status messages
- Progress shown during export operations
- Canvas now displays travel move optimization result
- Worksteps processed in parallel
- Larger surfaces supported via tiling (removes 32,000 x 32,000 limit)
- Numerous Windows EXE bugs
- Camera alignment UI with on-screen editing
- German and Portuguese languages
- Smoothieware support (via Telnet)
- Many Windows EXE bugs, test suite now passes in CI/CD
- Camera configuration (USB cameras via OpenCV)
- Live feed picture overlay on canvas
- Image settings (white balance, brightness, contrast, transparency)
- Image alignment and de-distortion support
- GRBL serial connection support
- Workpiece properties panel for precise position and dimensions
- Experimental Windows installer