I saw your reply and replied there too, but will include here for discussion as well. Thank you for reviewing!
Motor1Distance and Motor2Distance are actually the exact same as the previous triangular kinematics formulae, and represent the distance from the motor axes to the sled bit. As such, they change every time xTarget or yTarget change.
The selected variable name may not be as descriptive as it could be.
That makes sense. I found the GC Simulator python code and updated accordingly. Should I create a separate PR for that, or incorporate into a single PR? The original PR was forked off just the Firmware, so it looks like I can’t include it in that one as-is.
I was following along loosely over the weekend, but now I’ve read everything thoroughly. This is a great contribution! Thank you for taking the time to not only work out the math, but also make pull requests to add it to both the firmware and simulation. Fantastic job! I will merge them right away.