Skip to content

[RFC] UI Revamp: Changes Discussion #171

Description

@MausRundung

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)
Current Layer View Collapsed (Default State)
New Collapsed View

Expanded (Workpiece Detail)
Image
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):
Sidebar Layer Color

Canvas Selection & Grab Gizmo:
Image

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.

Image

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.

Image

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.

Image

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.

Image

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.
Image

Image

Problem 7.1: The last two contenders from the bottom Bar

These both can be moved to basicly the same place

Image Image

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions