Linear interpolation in Small area flow compensation #1409

Closed
opened 2026-04-05 17:37:21 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @vinitlee on 12/6/2025

Is there an existing issue for this feature request?

  • I have searched the existing issues

Flow compensation spline interpolation will often give wild results between or outside control point range, leading to very high flow, very low flow, and uneven flow change.

Which printers will be beneficial to this feature?

All

Describe the solution you'd like

Change the flow compensation model interpolation to simple linear interpolation. This will dramatically improve the predictability of the compensation factor and will not cause significant artifacts at the control points.

Describe alternatives you've considered

  1. This could also be mostly solved with a preview of the spline curve, but that seems like much more work and still will require a lot of fiddling to get a good curve.

Additional context

Here's an example of clearly unwanted behavior. The flow at 8 is above 1.0, even though all control points are below 1.0. This is very common when constructing models and opaque. Input flow compensation model:
0.000,0.080;
2.127,0.738;
4.123,0.955;
4.130,0.955;
4.769,0.978;
12.512,0.996;
15.000,1.000;
Image

Here are the same control points with linear interpolation instead of cubic splines.
Image

This may look not very smooth, but that honestly doesn't have much of a negative effect in printing. If someone were to want a smoother transition, you could easily add a couple more points:
+3,0.855;
+6,0.99;
Image

*Originally created by @vinitlee on 12/6/2025* ### Is there an existing issue for this feature request? - [x] I have searched the existing issues ### Is your feature request related to a problem? Flow compensation spline interpolation will often give wild results between or outside control point range, leading to very high flow, very low flow, and uneven flow change. ### Which printers will be beneficial to this feature? All ### Describe the solution you'd like Change the flow compensation model interpolation to simple linear interpolation. This will dramatically improve the predictability of the compensation factor and will not cause significant artifacts at the control points. ### Describe alternatives you've considered 1. This could also be mostly solved with a preview of the spline curve, but that seems like much more work and still will require a lot of fiddling to get a good curve. ### Additional context Here's an example of clearly unwanted behavior. The flow at 8 is above 1.0, even though all control points are below 1.0. This is very common when constructing models and opaque. Input flow compensation model: 0.000,0.080; 2.127,0.738; 4.123,0.955; 4.130,0.955; 4.769,0.978; 12.512,0.996; 15.000,1.000; <img width="691" height="547" alt="Image" src="https://github.com/user-attachments/assets/f9796cd1-e1ea-4b58-99d6-878fe53c4899" /> Here are the same control points with linear interpolation instead of cubic splines. <img width="691" height="547" alt="Image" src="https://github.com/user-attachments/assets/aefec672-f9e1-4a1d-b0de-c4743c17982c" /> This may look not very smooth, but that honestly doesn't have much of a negative effect in printing. If someone were to want a smoother transition, you could easily add a couple more points: +3,0.855; +6,0.99; <img width="691" height="547" alt="Image" src="https://github.com/user-attachments/assets/fd3ea2f0-5ee2-4703-8922-815a0e2b354c" />
MrUnknownDE added the enhancement🔔 reminder-sent📍 Assignedenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancementenhancement🔔 reminder-sent🔔 reminder-sent📍 Assigned📍 Assigned📍 Assigned📍 Assigned📍 Assigned📍 Assigned📍 Assigned📍 Assigned📍 Assigned📍 Assigned labels 2026-04-05 17:37:33 +02:00
Sign in to join this conversation.
No Label enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement enhancement 📍 Assigned 📍 Assigned 📍 Assigned 📍 Assigned 📍 Assigned 📍 Assigned 📍 Assigned 📍 Assigned 📍 Assigned 📍 Assigned 📍 Assigned 🔔 reminder-sent 🔔 reminder-sent 🔔 reminder-sent
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#1409