AllYarnsAreBeautiful/ayab-desktop

We should revisit the decision to mirror all images by default.

Closed this issue · 8 comments

Back at the very beginning of AYAB, a decision was made to mirror all images on load, but to show the original image on the screen. I don’t know if the original designers intentionally did it differently from Brother, or just designed it in a way that made sense to them at the time.

This is not how Brother did it, and anyone coming to AYAB who has any previous experience (almost everyone) has to relearn how it works in AYAB, and deal with the resulting idiosyncrasies. There are pros and cons to both ways, but overall I think Brother’s way is better. As well as being the way people are familiar with. The key is that the left/orange side of the image is knitting on the left/orange side of the needle bed. More natural and intuitive.

In essence it is simply changing our minds about a default, but there are some subtleties that I think will make the rest of the UI more intuitive.
Changing this might need a poll of users, see what people think. I have seen a couple of users request it in Facebook comments, so I expect that a poll would get a Yes vote.
If we are going to change it, 1.0 is the time.
If we decide not to change it, I have a few ideas on how to make the existing views more consistent. So there's work involved in both paths.
See #229 and #236 for some previous discussion on this topic.

Proposal:

  • default to the way that Brother (and other manufacturers) did it - load the image as given, display it as given. The image as you look at it on the screen is the same as the needles, (the reverse of how it will look on the knit side.) The left/orange side of the image is knitting on the left/orange side of the needle bed. Much more natural and intuitive.
  • Downside: for lettering, photos, or any image where the direction is important, the user needs to remember to reverse the image. This has always been true.
  • but if you do lettering etc often, or if you like the way AYAB worked before, you can check the Default Knit Side Image box in your Prefs.
  • the Knit Side Image checkbox as already implemented is good, may just need some tweaks:
    Is Knit Side Image the right name?
    It should flip the image on the screen. (Which Mirror did in 0.95, KSI currently does not)
  • maybe have some sort of visual indicator as to which side you’re looking at. (tinted background? An AYAB icon facing forwards or reversed?)
  • for lace, you would now NOT use mirror or KSI. (Brother designed all their lace patterns to operate as you look at the machine, the purl side.)
  • we need to decide what to call this feature. Brother called it Reverse. AYAB 0.95 called it Mirror. AYAB 1.0 calls it both Horizontal Flip and Knit Side Image.

Thanks for raising this Adrienne, and bringing to our attention users' concerns. It's a useful and timely discussion to have.

I agree that the default Brother setting is probably the most relevant context because almost all users will already be familiar with it.

Does anybody know what the default is for other knitting software, like DesignAKnit?

In DesignAKnit you generally design with the knit/right side facing you, then when you switch to Interactive Knitting (which operates line by line, in a way that's conceptually similar to AYAB) it flips it for you and as you knit you're looking at the design the other way around on the screen, as you see it on the purl side. They call it "Inversion from Left to Right" and it's normally ON for Brother machines. DAK has lots of settings and options which can make it behave otherwise, but that's the default. So it does take care of the lettering/photo problem for you, but as part of a far more complex design module that AYAB doesn't have.
So I'd say that the point to do the comparison is with DAK in its Interactive Knitting mode. It's WYSIWYG, what you see on the screen matches the knitting as you knit.

Maybe I'm making this more complex than it needs to be. In short, what I want to see for an asymmetric image is: Design your image in Gimp the way you want it to look when finished. When you open such an image in AYAB, you need to check a checkbox so that AYAB opens it up so it's backwards on the screen, the way it will look as you knit.

I do think it is best that the knitting progress window that shows the stitches as they are knitted should show the same orientation as the stitches on the machine, personally. But it does not necessarily need to match the upper image, and that can be mirrored or not according to user preference, or whether one is knitting colourwork or lace.

Having said that I am not against your original suggestion of finding out what users prefer somehow, given that I do not know myself.

Do have any suggestions what the option should be named?

I'm inclined towards using Brother's term, Reverse, but the other terms are OK too.

You're suggesting keeping the ability to view the image from the front, while knitting it from the back? Which is how AYAB works now, except it would be optional? We could do that, the existence of the lower progress view does facilitate it, but I think it would be OK not to. We have gotten used to that in current AYAB, but it can be confusing to newcomers and I don't think it really adds much to the usability. I think the changes I'm suggesting would be simpler without it, both in coding and in UI design.

I just read through all your suggestions again and I think I am on board. I just wanted to make sure that when the "reverse" box is checked, that would reverse the image on the main part of the screen, but not change the orientation in the lower knit progress window that shows the pattern row by row as you knit.

I think a useful icon would be something like a lowercase letter "e" (or "a" or "k", something which looks different in mirror image). The default setting would show a mirrored "e" to indicate that you are looking at the wrong side of the pattern. Checking the box would reverse the icon.

Perhaps we should raise this at the next zoom meeting to get some opinions. It would probably be helpful for me as well to make sure that I understand exactly what the consensus proposal is, because it's clear that I introduced some unintended changes in the current v1.0 draft.

Alessandra's 2¢: https://alessandrina.com/2017/12/20/combining-kc-patterning-with-racking/

"In what is an increasingly irksome feature to me, Ayab will automatically mirror horizontally any loaded image, so to get the above, you need to actually be either mirroring the image prior to loading it (my preference), or remember to do so through Ayab’s actions after."

Continued in #613 and #614