"Mask Wizard" and advanced calibration


So the Seattle heat wave killed my Photon. 111F outside meant about 130F in the garage and there are dead capacitors in there somewhere (above and beyond the nuked LCD). An LCD later and it’s still not printing right. Poor resolution, lots of floaters, just a nightmare. RIP crappy little Photon.

So I’ve got an Epax X1-4k now and am going through the process of getting my resins dimensionally correct etc. I’ve learned a thing or two and am curious as to best practices as far as implementing the more advanced calibration and correction features. Apologies if this is written up somewhere else (it usually is) but my google-fu is failing this morning:

  • XY Offset Correction vs. Shrinkage Correction. I’ve used Shrinkage Correction extensively in the past. How would I know when to mess with the XY Offset?

  • Pixel Dimming. What should I look for to know whether I should mess with this?

  • Curve Reduction. Is this related to the opacity of the resin?

  • Machine Calibration & Mask Wizard. Is there a tutorial anywhere as to how to implement this feature? I’ve got a way better light engine now so I might as well dial it. I see a couple topics on these forums about what the mask looks like, but no suggested workflows as to implementing it.

Thanks, as always, for giving us so much granular control.


Whelp I tried to do a calibration and ended up breaking Formware so severely that I had to delete the printer.
So… some instructions would be good.


Hi Trillium,

XY vs Shrinkage: XY offsets can be useful for small holes and features that need precise fits, it is applies to all layers. All LCD printers will have some absolute lateral growth (1-3 pixels)

Pixel dimming can be used when printing large volumes, especially in transparent resins.

Curve reduction applies to an intermediate slicing step, the intersection contours are calculated and simplified with this factor before rasterizing. There is a small trade-off in accuracy for slicing speed. This is less relevant for LCD machines with the new slicing engine as it is plenty fast, for vector slice outputs it is quite useful.

The new mask wizard is still in Beta. What do you mean exactly, did the profile get corrupted?



Okay so one at a time:

(1) I’ve dealt with “lateral growth” through the shrinkage adjustments. To clarify, how does XY Offset Correction address this problem differently than shrinkage correction?

(2) I print a lot of transparent resins because I’ve found they cure the cleanest. I found that in general, I was much better off leaving the middle of my prints liquid and then blasting them with UV after I pulled 'em because otherwise I wasn’t getting enough bed adhesion to not leave partial models on the FEP. How would pixel dimming help me?

(3) It sounds like curve reduction is not something I need. If slicing speed is very much not a concern, I should never need to mess with it. Is that correct?

(4) I tried to print the mask without a bed, and then clean the uncured goop off the fep while leaving the targets in place, and then take a picture of it per instructions, and Formware3D was so mad it crashed and said it couldn’t continue. From that point forth whenever I attempted to access that printer to set it up or edit it, Formware would say it had crashed and couldn’t continue.

I understand the mask wizard is in beta and if it’s not quite to the standard where it can be used, I won’t. But it’s been in beta since like 2018.

What can I say. I have a better printer than I did before. The way I typically characterize my resins is by printing ten ea 10mm XYZ cubes, measuring them with a caliper, averaging the results and then iteratively using that as a shrinkage correction until my my measurements zero on correct. It seems like going through the process of using the Mask Wizard would help me eliminate geographic variation from the bed, which can only improve precision. So… how do I go about this? Because when I tried it without instructions I made an ugly mess.


Thanks Trillium, thanks Jan: very interesting topic.
(1) Does XY offsets can be useful for small holes and features that need precise fits, it is applies to all layers. mean that shrinkage adjustments not?

  1. XY offsets are an absolute correction (offset); correction is n pixels no matter the size of the object in XY plane only, while shrinkage correction is a relative correction (scaling) ; so a percentage of the total size in XYZ.

In MSLA printers layers are almost always overexposed to ensure that pixels grow together laterally (pixels are actually spaced apart in the LCD) See this thread: True 3D Antialiasing

To measure the effects separately; print a cube with known size and measure it before and after post curing.
Before post curing you will typically measure a slightly larger dimension due to XY-Overgrowth, after post curing the object will most likely shrink a bit, depending on the total size, resin used and exposure settings.

The corrections are applied separately: Shrinkage correction is a scaling of the mesh before slicing, XY-offsets is an offset applied to the slice contours.

  1. Because light from neighboring pixels also contributes to exposure, a pixel in the center of a large surface will receive more light. This feature is intended to compensate for that, it will not really help with layer adhesion problems.

In general, I think hollowing and infilling (for large volumes) is always the best option for dimensional accuracy, this also reduces adhesion issues as long as you check for suction cups. (new feature in

  1. Correct

  2. The mask wizard is supposed to generate a light intensity correction map. Printers with single light sources need this far more than those with array light sources, if properly designed. However even array light sources can benefit from this as tolerances on led light outputs can easily be +/- 20%

We released this wizard end of last year but you are absolutely right in that is not exactly well tested or documented :slight_smile: I think I was able to recreate your error in the wizard when applying the mask.
Let me look into that, and I will shortly record a short demo video to demo the process I used.



Thank you very much, Jan. I look forward to seeing what you come up with.

So I understand “offset” and I understand “shrinkage.” It sounds like you’re saying something very basic:

  • an OFFSET of (10,10) on a 1920x1080 bed would print a pixel in the center of the bed at (970,550)

  • A SHRINKAGE of (200%,200%) on a 1920x1080 bed would print four pixels centered at (960,540)

Is that correct? “Offset” has typically been a registration correction in my experience, I was just surprised to find it to be an issue. I guess I expected 3d printer engines to be better integrated.