跳转到主要内容

Rayforge 1.8 Beta - Rust-Powered Pipeline, Faster Rasterizing, New GRBL Driver

Rayforge Team
Core development team

Rayforge 1.8 beta brings a Rust-powered geometry pipeline, a completely redesigned Ops data structure, raster and image processing ported to Rust, a new simple GRBL serial driver, and new device profiles.

Ops Redesigned with Struct-of-Arrays

The core Ops container has been completely rewritten from a list of Python Command objects to a Struct-of-Arrays layout with index-based access. This new design is significantly faster in Python and serves as the foundation for the Rust backend integration. Every transformer, encoder, producer, and the 3D simulator has been ported to the new API.

Geometry Processing in Rust (raygeo 0.6)

Five major pipeline stages now run entirely in Rust via raygeo 0.6: tab operations, merge lines, overscan, lead-in/lead-out, and hull computation. Each has been rewritten as a thin Python wrapper around raygeo's Rust functions, and the old Python implementations have been removed. This is the continuation of the migration that started in 1.7.8.

Raster Engine in Rust

Raster scan loops -- the hot path for engraving operations -- have been replaced with Rust-accelerated raygeo functions for power modulation, mask scanning, and multi-pass modes. Auto-level computation and grayscale normalization also run in Rust. All 39 existing raster tests pass unchanged.

Image Processing in Rust

sRGB-to-linear conversion, linear-to-sRGB, all dithering algorithms (Floyd-Steinberg, Bayer, minimum run length), auto-level computation, and grayscale normalization are now handled by raygeo.image. The Python side keeps only thin Cairo surface buffer wrappers.

3D Canvas Slider Performance

The 3D playback scrubber now pre-computes snapshots every 1000 commands at load time and uses binary search during playback. For a 338K-command job, seek time drops from seconds to roughly 3 milliseconds.

Simple GRBL Serial Driver (Experimental)

A new GrblSerialSimpleDriver uses a ping-pong protocol: send one line, wait for "ok", send the next. No character-counting buffer management, no deadlock detection, no stall recovery. Useful for devices where the advanced buffer-counting driver causes false alarms or communication errors.

Adaptive Deadlock Timeouts

The GRBL driver now estimates per-command execution time and sets individual timeouts accordingly. Slow moves get longer timeouts, fast moves get shorter ones. This eliminates false ALARM:3 errors on slow feed rates.

Go to WCS Zero

A new button in the Current Position section moves the machine to X0 Y0 of the active Work Coordinate System.

New Device Profiles

  • Creality Falcon 10W -- 10W diode laser with 400x415mm work area
  • Sculpfun C1 -- diode laser engraver

Finer Raster Line Spacing

The minimum raster line spacing has been lowered from 0.01 mm to 0.001 mm with 3-digit decimal precision, enabling sub-10 micron pitch work for microfabrication and precision lithography.

Machine Settings Apply Immediately

Machine settings changes now propagate to the pipeline and canvas without requiring a restart. Driver, dialect, laser, and axis changes are all picked up live.

Other Improvements

  • Worker pool detects crashed and unresponsive workers, spawns replacements automatically
  • Fixed GRBL network disconnect with MKS DLC32 boards
  • Fixed ValueError when removing the active machine
  • Fixed manual laser control routing
  • File dialogs now prefer Rayforge project and sketch MIME types
  • Deadlock detection can now be toggled on/off per driver

Special Thanks

This release was made possible with the support of our Patreon supporters: froqstar, old-man-and-the-seam, pghpete, Derek McTavish, starlynx.dev, and five anonymous supporters.

Download Rayforge 1.8 Beta

Join the Community