Rayforge currently faces several UI challenges that can make complex projects difficult to manage. This RFC outlines these issues and proposes solutions aimed at making the interface more intuitive for "creatives" while maintaining a clean, non-technical aesthetic.
Problem 1: Layer "Blindness" & Workpiece Management
Currently, it is impossible to see what is inside a layer. If a layer contains multiple images or SVG paths, they are effectively "invisible" in the sidebar. There is no way to select, hide, or adjust the transparency of a single workpiece within a layer without affecting everything else.
| Current (Static) |
Proposed (Collapsible) |
 |
Collapsed (Default State)

Expanded (Workpiece Detail)
 |
| Current: No way to see or select individual items. The UI is fixed and offers no depth. |
Solution: Using Adw.ExpanderRow allows for a cleaner default view while revealing granular control (visibility/opacity) only when needed. |
| Proposed Solution: |
|
Introduce Collapsible Sub-Items (using Adw.ExpanderRow). |
|
- By default, the layer remains a clean, single row.
- When expanded, it reveals the individual workpieces (Images/SVGs) inside.
- This allows for individual visibility toggles (eye icon) and per-item transparency, giving users granular control without cluttering the main UI.
- This also puts the "Add New Layer" into an Icon to save height of the total element.
Problem 2: Layer-to-Canvas Ambiguity
When a workspace has multiple items spread across many layers, it is hard to tell at a glance which item on the canvas belongs to which layer in the sidebar. This leads to "guessing" and clicking through layers to find the right one.
Visual Mapping (Sidebar):

Canvas Selection & Grab Gizmo:

Proposed Solution:
Implement Distinct Layer Coloring and a Selection Gizmo:
- Color Mapping: Assign a unique color to each layer that is reflected in the selection highlight on the canvas. This provides an instant visual link between the "Recipe" (sidebar) and the "Design" (canvas).
- Selection Gizmo: I’ve added a dedicated grab-handle (gizmo) below selected objects. This ensures that even thin vector outlines can be grabbed and moved easily without requiring pixel-perfect clicking.
Problem 3: Sidebar Vertical Bloat
The sidebar (Assets, Layers, Workflows, and Movement Controls) takes up a massive amount of vertical space. On smaller screens or complex projects, the most important properties get buried, requiring constant scrolling.
Proposed Solution:
Condense the Control Pad and Property Fields.
- By reducing "white space" in the control section, we free up significant vertical room for the Layer list and Workflow settings, making the overall app feel more "one-glance" accessible.
Problem 4: Z-Index & Reordering Logic
Managing the processing order (Z-index) is currently unintuitive. Users need a way to move items between layers or change their order within a layer freely.
Proposed Solution:
Enable Drag-and-Drop Reordering.
- Users should be able to drag workpieces between layers or move layers up and down the stack.
- This turns the sidebar into a functional "Timeline" of how the laser will process the job.
Problem 5: Workflow Redundancy & Card Density
The current workflow settings (Power, Speed, Passes) take up significant vertical space. Additionally, This creates unnecessary visual noise in the properties panel.
Proposed Solution:
Condense Workflow Cards and Remove Redundant Toggles.
- Active Layer Color: Workflows pannel now takes the color of the Selected layer makeing it more clear what your working on.
- Remove "Disable" Button: Since visibility and layer activity are now handled at the Layer/Workpiece level, the separate "Disable" switch within the workflow settings is removed to save space.
- Compact Property Rows: Use more condensed input rows for Power, Speed, and Passes. This ensures that even with 5+ layers, the user can see most of their settings without excessive scrolling.
- Achivement: now two Layers take the Space of previous One layer while adding more Information
Problem 6: Movement Pad Spacing & "Dead" Space
The movement control section is essential for physical machine interaction, but it currently suffers from "dead space" between the directional buttons and the jog settings.
Proposed Solution:
Tighten the Movement Grid.
- Eliminate Gaps: Using the available space a lot better...
Problem 7: Consolidating the Bottom Bar
The current bottom bar takes up valuable vertical real estate.
This can be moved into the Layers:
Not only would this provide the ability to see the time for each layer instead of the total, but it would also allow for more accurate calculations by excluding hidden pieces. Currently, it counts the total time and includes layers that are disabled and will not be lasered.

Problem 7.1: The last two contenders from the bottom Bar
These both can be moved to basicly the same place
Goal of these changes
The objective isn't to add "more widgets," but to merge and refine existing ones. By using collapsible elements and better spatial layouts, we can provide the power of a professional editor while keeping the "simple and clean" soul of Rayforge intact.
I'm looking forward to hearing your thoughts on these directions!
Rayforge currently faces several UI challenges that can make complex projects difficult to manage. This RFC outlines these issues and proposes solutions aimed at making the interface more intuitive for "creatives" while maintaining a clean, non-technical aesthetic.
Problem 1: Layer "Blindness" & Workpiece Management
Currently, it is impossible to see what is inside a layer. If a layer contains multiple images or SVG paths, they are effectively "invisible" in the sidebar. There is no way to select, hide, or adjust the transparency of a single workpiece within a layer without affecting everything else.
Expanded (Workpiece Detail)
Adw.ExpanderRowallows for a cleaner default view while revealing granular control (visibility/opacity) only when needed.Adw.ExpanderRow).Problem 2: Layer-to-Canvas Ambiguity
When a workspace has multiple items spread across many layers, it is hard to tell at a glance which item on the canvas belongs to which layer in the sidebar. This leads to "guessing" and clicking through layers to find the right one.
Visual Mapping (Sidebar):

Canvas Selection & Grab Gizmo:

Proposed Solution:
Implement Distinct Layer Coloring and a Selection Gizmo:
Problem 3: Sidebar Vertical Bloat
The sidebar (Assets, Layers, Workflows, and Movement Controls) takes up a massive amount of vertical space. On smaller screens or complex projects, the most important properties get buried, requiring constant scrolling.
Proposed Solution:
Condense the Control Pad and Property Fields.
Problem 4: Z-Index & Reordering Logic
Managing the processing order (Z-index) is currently unintuitive. Users need a way to move items between layers or change their order within a layer freely.
Proposed Solution:
Enable Drag-and-Drop Reordering.
Problem 5: Workflow Redundancy & Card Density
The current workflow settings (Power, Speed, Passes) take up significant vertical space. Additionally, This creates unnecessary visual noise in the properties panel.
Proposed Solution:
Condense Workflow Cards and Remove Redundant Toggles.
Problem 6: Movement Pad Spacing & "Dead" Space
The movement control section is essential for physical machine interaction, but it currently suffers from "dead space" between the directional buttons and the jog settings.
Proposed Solution:
Tighten the Movement Grid.
Problem 7: Consolidating the Bottom Bar
The current bottom bar takes up valuable vertical real estate.
This can be moved into the Layers:
Not only would this provide the ability to see the time for each layer instead of the total, but it would also allow for more accurate calculations by excluding hidden pieces. Currently, it counts the total time and includes layers that are disabled and will not be lasered.

Problem 7.1: The last two contenders from the bottom Bar
These both can be moved to basicly the same place
Goal of these changes
The objective isn't to add "more widgets," but to merge and refine existing ones. By using collapsible elements and better spatial layouts, we can provide the power of a professional editor while keeping the "simple and clean" soul of Rayforge intact.
I'm looking forward to hearing your thoughts on these directions!