Two questions

By “your system”, I meant the numbering system you had devised earlier in this topic. I think we are having a communication issue due to a differing mental model of how this works. I assumed that when you wrote those numbers down (0=5.0, 1=5.5, etc.) you were describing a mapping between levels of gray on the left to laser power on the right, and from the fact that the power level was increasing with the numbers, I derived that higher numbers are darker, therefore the scale starts at 0 with pure white and goes up to I-don’t-know-call-it-100 for pure black. Now you’re introducing negative numbers and triplets, and it’s starting to get really complicated.

So I propose an alternative view. I am a computer guy, so it’s more comfortable for me to use something closer to what’s actually going on. 8-bit grayscale is a thing, so we’ll go with that and keep it simple (so there are exceptions for what I’m going to say but we’ll ignore them). Each pixel is represented by a number from 0 to 255. 0 is completely black, 255 is completely white, and there’s a smooth ramp in between. Hopefully that’s pretty straightforward.

Now the question is how to convert those grayscale numbers into laser power. Let’s invent some terminology, which we’ll call “pews”. 0 pews is switched off completely (making no mark), and 100 pews full-on, making the darkest possible mark. Again, let’s ignore LPI, multiple passes, and the mysterious “full power” switch for the moment. A straightforward ramp from off to on, like a light dimmer.

Now here’s the model I have in my head for how this dialog works. I’m going to call the box at the top (Precision Power) “Power”, and the box at the bottom (Min Power) “Min”, to make it easier to say.

Glowforge

Simply, Power specifies the maximum pews, and Min specifies the minimum pews. The grayscale levels from your file are mapped linearly into this range, with the exception that pure white (255) is always 0 pews.

For example, as in the picture, where Power = 100 and Min = 0, the mapping is as follows. There will be a tiny bit of math here because we need to scale the gray range (0-255) to the pew range (0-100). Here is the formula: (255-Gray)*((Power-Min)/255)+Min. In this case, Power is 100 and Min is 0, so we’ll simplify it to (255-Gray)*(100/255).

Gray 0 (black)          -> 100.0 pews [math: (255-0)*(100/255)]
Gray 1 (almost black)   ->  99.6 pews [math: (255-1)*(100/255)]
Gray 2                  ->  99.2 pews [math: (255-2)*(100/255)]
[...]
Gray 128 (midpoint)     ->  49.8 pews [math: (255-128)*(100/255)]
[...]
Gray 254 (almost white) ->   0.4 pews [math: (255-254)*(100/255)]
Gray 255 (white)        ->     0 pews [no math, white is always ignored]

Hopefully by this point those numbers look sensible to you. Full black is full power laser, and full white is don’t fire the laser at all. In between, the darker the color, the more laser power.

Now what happens if we do something interesting, like keep Power at 100 but set Min to 10? Remember the formula: (255-Gray)*((Power-Min)/255)+Min. This becomes (255-Gray)*(90/255)+10, and our mapping changes as follows:

Gray 0 (black)          -> 100.0 pews [math: (255-0)*(90/255)+10]
Gray 1 (almost black)   ->  99.6 pews [math: (255-1)*(90/255)+10]
Gray 2                  ->  99.3 pews [math: (255-2)*(90/255)+10]
[...]
Gray 128 (midpoint)     ->  54.8 pews [math: (255-128)*(90/255)+10]
[...]
Gray 254 (almost white) ->  10.4 pews [math: (255-254)*(90/255)+10]
Gray 255 (white)        ->     0 pews [no math, white is always ignored]

Notice how everything is squeezed up just a bit so that it all falls between 10 and 100 pews, with a sudden jump at the end because of the “ignore white” rule. Mathematically, white would be 10, but the rule says we use white to represent transparency, and that overrides the minimum power calculation.

One last example, what happens if we change the Power setting? That controls the maximum power, and everything scales accordingly. To make the numbers more interesting, let’s say Power = 60 and Min = 50. Back to our old friend (255-Gray)*((Power-Min)/255)+Min, which becomes (255-Gray)*(10/255)+50. And the table:

Gray 0 (black)          ->  60.0 pews [math: (255-0)*(10/255)+50]
Gray 1 (almost black)   ->  60.0 pews [math: (255-1)*(10/255)+50]
Gray 2                  ->  59.9 pews [math: (255-2)*(10/255)+50]
[...]
Gray 128 (midpoint)     ->  55.0 pews [math: (255-128)*(10/255)+50]
[...]
Gray 254 (almost white) ->  50.0 pews [math: (255-254)*(10/255)+50]
Gray 255 (white)        ->     0 pews [no math, white is always ignored]

As before, we take the same range of source gray levels and now we squeeze them in between 50 and 60 pews, except it suddenly jumps from 50 to 0 when it hits white, because (say it with me) white represents transparent.

I’ve tried really hard to make this absolutely crystal clear. I hope I have had some level of success. If I have, the following should make sense:

If you crank up the contrast on your files so that they use all the gray levels from 0 to 255, as in the image I posted above, and you engrave with Min set to something higher than 0, there will be a jump from “almost white” to “white”, which might cause your resulting engrave to have what I’m calling “bald spots” in it. Areas where you expected “Min”, but got 0 instead. The workaround for this right now is to use your photo editor to remap the colors so there’s no 255 in the part you want engraved.

Some, but not all, file formats (like PNG and SVG) have extra information in them that makes it possible to say that certain parts are actually transparent. Not “pretend white is transparent”, but “there’s nothing drawn here”. And this is why some of us are making the suggestion that there should be a checkbox to toggle whether white is treated as transparent or not. Because we can use transparent to mean transparent and don’t need the extra step to prevent Amy’s hat from disappearing.

I hope that covers everything on this subject.

7 Likes