You might ask: What happened to 0.9.6? Well, we had a short-lived release that we had to nuke as the newly introduced raster changes showed a regression for m2nano devices. After a lot of tests we want to extend our testbase by issuing this *alpha* release to verify the integrity of the new functionalities. So please run some tests on your infrastructure with these new modes and come back with your experiences. We can't rule out issues, so don't burn something on a gold plate, please...
Raster and Images
So this is mainly about the burning of rasters and images.
This PR addresses multiple grievances with Raster/Image modes. The logic was rewritten to properly recognize start points for the raster operation and appropriate start and end points of segments for bidirectional operations.
New Raster methods
During this exercise additional raster methods have been introduced:

Greedy neighbor
(horizontal and vertical) - meerk40t prefers to follow near line segments than to remain on a horizontal/vertical line if the next segment on that line lies farther away.

The difference between horizontal and vertical mode is just the way how meerk40t draws segments:

NB: these two modes are not supported on m2nano/moshi devices
Crossover
This algorithm sweeps over the image drawing first all lines with a majority of black pixels and then drawing the columns where we have a majority.

The implementation for m2nano/moshi does split the image accordingly and creates two raster operations internally.

BTW the amount of internal travel (ie sweeping over empty areas) can now be seen in the simulation window: the travel information contains in bracket the amount of "internal" travel, the major figure is unchanged and still contains the travel between objects.
Split image along white areas
This will look for inner white areas inside the picture and split them into a left and right part at the center of the identified area.

Acknowledging the laserwidth
This a magnification of the image used in the examples above rendered at 500 dpi:

A lot of lines do overlap each other leading to a very dark / overheated image. If you set the "Consider laserdot" option, then meerk40t will recognize which areas have already been burned and will skip these parts:

The used laserdot diameter can be set in the device properties.
Support Matrix
| Method | Main axis | Movement | Balor | GRBL | M2Nano | Moshi | Newly |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Top2Bottom | Horizontal | Uni/Bidirectional | Yes | Yes | Yes | Yes | Yes |
| Bottom2Top| Horizontal | Uni/Bidirectional | Yes | Yes | Yes | Yes | Yes |
| Right2Left | Vertical | Uni/Bidirectional | Yes | Yes | Yes | Yes | Yes |
| Left2Right | Vertical | Uni/Bidirectional | Yes | Yes | Yes | Yes | Yes |
| Crossraster| Horizontal + Vertical | Uni/Bidirectional | Yes | Yes | Yes | Yes | Yes |
| Greedy Horizontal | Horizontal | Bidirectional | Yes | Yes | - | - | Yes |
| Greedy Vertical | Vertical | Bidirectional | Yes | Yes | - | - | Yes |
| Crossover | Horizontal + Vertical | Bidirectional | Yes | Yes | Yes | Yes | Yes |
|Split in parts| Horizontal| Bidirectional | Yes | Yes | Yes | Yes | Yes |
What's Changed
* Sync 0.96 by jpirnay in https://github.com/meerk40t/meerk40t/pull/2737
* Fix bg in grbl control window by jpirnay in https://github.com/meerk40t/meerk40t/pull/2738
* Load Xcs files by jpirnay in https://github.com/meerk40t/meerk40t/pull/2732
* Fix textctrl colors for overloaded light on dark systems by jpirnay in https://github.com/meerk40t/meerk40t/pull/2739
* Allow two-opt optimisation for generated path after image 2 geometry by jpirnay in https://github.com/meerk40t/meerk40t/pull/2740
* Fix invalid persistence of coolant attribute by jpirnay in https://github.com/meerk40t/meerk40t/pull/2742
* Immediately set default value by jpirnay in https://github.com/meerk40t/meerk40t/pull/2744
* Update German and Italian translations by jpirnay in https://github.com/meerk40t/meerk40t/pull/2745
* Remove IRC from list of supported interactions by jpirnay in https://github.com/meerk40t/meerk40t/pull/2746
* Extended set/unset/toggle hidden flag by jpirnay in https://github.com/meerk40t/meerk40t/pull/2748
* Balor serial by jpirnay in https://github.com/meerk40t/meerk40t/pull/2749
* Overall raster overhaul by jpirnay in https://github.com/meerk40t/meerk40t/pull/2743
* Recognize non saveable file types on 'Save' by jpirnay in https://github.com/meerk40t/meerk40t/pull/2714
* Cherrypick simulation enhancements from lhy_low_dpi (Image/Rasterview) by jpirnay in https://github.com/meerk40t/meerk40t/pull/2716
* Greedy operation drag by jpirnay in https://github.com/meerk40t/meerk40t/pull/2718
* Simplified raster plotter fixes by jpirnay in https://github.com/meerk40t/meerk40t/pull/2719
* Persist settings, add double display by jpirnay in https://github.com/meerk40t/meerk40t/pull/2721
* Add dpi warning by jpirnay in https://github.com/meerk40t/meerk40t/pull/2720
* Fix timerbutton regression by jpirnay in https://github.com/meerk40t/meerk40t/pull/2722
* Additional rasterfix by jpirnay in https://github.com/meerk40t/meerk40t/pull/2723
* Fix performance issue at delete many items by pkochubey in https://github.com/meerk40t/meerk40t/pull/2724
* Context menu on dpi entry fields by jpirnay in https://github.com/meerk40t/meerk40t/pull/2725
* Experimental `linefill`command by jpirnay in https://github.com/meerk40t/meerk40t/pull/2727
* Fix behaviour for hidden raster elements by jpirnay in https://github.com/meerk40t/meerk40t/pull/2728
* Fix button size for startup by jpirnay in https://github.com/meerk40t/meerk40t/pull/2730
* Win scaling issue by jpirnay in https://github.com/meerk40t/meerk40t/pull/2733
* Address copying of nodes inside a single group by jpirnay in https://github.com/meerk40t/meerk40t/pull/2736
New Contributors
* pkochubey made their first contribution in https://github.com/meerk40t/meerk40t/pull/2724
**Full Changelog**: https://github.com/meerk40t/meerk40t/compare/0.9.5300...0.9.6010