Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scarf joint seam enhancement: conditional scarf joint and slowdown for scarf joint only #4317

Merged
merged 11 commits into from Mar 8, 2024

Conversation

SoftFever
Copy link
Owner

@SoftFever SoftFever commented Mar 3, 2024

This PR enhances @Noisyfox's scarf joint seam implementation (#3839) by adding a new strategy that allows scarf joint seams to be applied smartly to smooth perimeters only. For perimeters with sharp corners, traditional seams are used instead, as they effectively conceal seams by placing them at the corners.

1. Conditional scarf joints:

conditional_scarf

A simple testing model:
image

TeachingTech's testing model:
image

scarf_conditional_test1.zip
scarf_conditional_test_TT_model.zip

2. Scarf joints slowdown

image

@Gwaboo
Copy link

Gwaboo commented Mar 3, 2024

how can I try this ?

@5axes
Copy link

5axes commented Mar 3, 2024

how can I try this ?

OrcaSlicer PR 4317

https://github.com/SoftFever/OrcaSlicer/actions/runs/8131221473

@psiberfunk
Copy link

psiberfunk commented Mar 3, 2024

@SoftFever Printables post has been updated to include these binaries and documentation of what this feature does.

where do you want me to start documenting this on the wiki so it doesn't live only in printables ?

@psiberfunk
Copy link

psiberfunk commented Mar 3, 2024

@SoftFever , @Noisyfox : Because one of the major complaints about scarf seams is needing to slow down outer walls (thereby increasing print time), conditional scarf seams feels like it should naturally have a speed modifier that applies only for scarf-seam'd walls vs the regular walls... as the scarf seam'd ones need to go slower than everything else for good results. Any thoughts on how to accomplish this in the UX ? not sure if it belongs in this PR or another ?

Of course if we slow down only for certain walls, that could change the sheen/finish on the walls and be undesirable.. so maybe a better solution is a "slow down for scarf section" speed modifier ? Not sure the best way to accomplish this.. but feels like the next natural improvement?

@tsmith35
Copy link
Contributor

tsmith35 commented Mar 3, 2024

This PR enhances @Noisyfox's scarf joint seam implementation (#3839) by adding a new strategy that allows scarf joint seams to be applied smartly to smooth perimeters only. For perimeters with sharp corners, traditional seams are used instead, as they effectively conceal seams by placing them at the corners.

Perhaps a "minimum radius for scarf joint seam" parameter could be added, along with logic like this:
If scarf joint seam is enabled, find minimum radius on layer wall. If minimum radius is <= minimum scarf radius, then use a regular seam on that minimum radius, otherwise use a scarf joint seam. An exception could be made for minimum object layer size, such that the maximum radius on a given layer is <= minimum scarf radius. Like for vertical posts or whatnot.

@psiberfunk
Copy link

psiberfunk commented Mar 3, 2024

This PR enhances @Noisyfox's scarf joint seam implementation (#3839) by adding a new strategy that allows scarf joint seams to be applied smartly to smooth perimeters only. For perimeters with sharp corners, traditional seams are used instead, as they effectively conceal seams by placing them at the corners.

Perhaps a "minimum radius for scarf joint seam" parameter could be added, along with logic like this: If scarf joint seam is enabled, find minimum radius on layer wall. If minimum radius is <= minimum scarf radius, then use a regular seam on that minimum radius, otherwise use a scarf joint seam. An exception could be made for minimum object layer size, such that the maximum radius on a given layer is <= minimum scarf radius. Like for vertical posts or whatnot.

I’m curious what we are trying to accomplish with something like a radius filter ? I’m not sure I see the purpose of adding that complexity? Presently the code filters scarf vs traditional based on finding a “sharp” corner by comparing segment angles against a threshold value. Are you asking to adjust this threshold angle , and if so , why ?

@RnDMonkey
Copy link

RnDMonkey commented Mar 3, 2024

This PR enhances @Noisyfox's scarf joint seam implementation (#3839) by adding a new strategy that allows scarf joint seams to be applied smartly to smooth perimeters only. For perimeters with sharp corners, traditional seams are used instead, as they effectively conceal seams by placing them at the corners.

Perhaps a "minimum radius for scarf joint seam" parameter could be added, along with logic like this: If scarf joint seam is enabled, find minimum radius on layer wall. If minimum radius is <= minimum scarf radius, then use a regular seam on that minimum radius, otherwise use a scarf joint seam. An exception could be made for minimum object layer size, such that the maximum radius on a given layer is <= minimum scarf radius. Like for vertical posts or whatnot.

I’m curious what we are trying to accomplish with something like a radius filter ? I’m not sure I see the purpose of adding that complexity? Presently the code filters scarf vs traditional based on finding a “sharp” corner by comparing segment angles against a threshold value. Are you asking to adjust this threshold angle , and if so , why ?

An accessible and easily-understood threshold criteria would be good. Currently the condition is hidden (without looking at the code, I don't know if it's curvature based, total perimeter length based, or what). Here is an illustrative example with Teaching Tech's test model scaled down to 50%. Where the diameter of this curved feature is less than about 9.5mm, it switches to traditional seams:
image
Note that print settings are using the defaults in your Printables .3mf file

@psiberfunk
Copy link

psiberfunk commented Mar 3, 2024

This PR enhances @Noisyfox's scarf joint seam implementation (#3839) by adding a new strategy that allows scarf joint seams to be applied smartly to smooth perimeters only. For perimeters with sharp corners, traditional seams are used instead, as they effectively conceal seams by placing them at the corners.

Perhaps a "minimum radius for scarf joint seam" parameter could be added, along with logic like this: If scarf joint seam is enabled, find minimum radius on layer wall. If minimum radius is <= minimum scarf radius, then use a regular seam on that minimum radius, otherwise use a scarf joint seam. An exception could be made for minimum object layer size, such that the maximum radius on a given layer is <= minimum scarf radius. Like for vertical posts or whatnot.

I’m curious what we are trying to accomplish with something like a radius filter ? I’m not sure I see the purpose of adding that complexity? Presently the code filters scarf vs traditional based on finding a “sharp” corner by comparing segment angles against a threshold value. Are you asking to adjust this threshold angle , and if so , why ?

An accessible and easily-understood threshold criteria would be good. Currently the condition is hidden (without looking at the code, I don't know if it's curvature based, total perimeter length based, or what). Here is an illustrative example with Teaching Tech's test model scaled down to 50%. Where the diameter of this curved feature is less than about 9.5mm, it switches to traditional seams: image Note that print settings are using the defaults in your Printables .3mf file

As I mentioned above , Presently the code filters scarf vs traditional based on finding a “sharp” corner by comparing segment angles against a threshold value. The code was largely copied from the already present seam placement code as @SoftFever noted in the code comments. Currently looks like it’s checking to see if the segment angle exceeds 10 degrees .

It would be nice to have an adjustable threshold of some kind for the “crossover”… but we need to make it something easily conceptually understood if possible . Alternatively I guess we could allow people to paint the seam type onto objects ?

The other way to consider doing this @SoftFever is to use arc fitting .. and anything that would naturally be turned into an arc move should not be a candidate for a traditional seam ? That way you could reuse the arc fitting threshold parameters as filtering … Not sure if that works in practice tho ..

@SoftFever
Copy link
Owner Author

@RnDMonkey Great observation!
The algorithm and its parameters definitely need more fine-tuning. I've been hesitant about revealing more parameters, but I'll introduce them in a PR first so we can experiment and assess their effectiveness.

@psiberfunk That's a good idea. ARC fitting info can be useful too – consider it added to my to-do list!

Just a little heads-up: I can only tackle this in my spare time outside of regular work hours (and my day is just starting, so please bear with me 😉

@SoftFever SoftFever changed the title Scarf joint seam: Allow apply to perimeters without sharp corners only Scarf joint seam: Allow apply to perimeters without sharp corners only [DRAFT] Mar 4, 2024
@pierremilcent
Copy link

OrcaSlicer build 4317 for Macos arm version seems to be broken as i cannot launch the app. The system tells me it is broken

Capture d’écran 2024-03-04 à 09 28 28

@igiannakas
Copy link
Contributor

OrcaSlicer build 4317 for Macos arm version seems to be broken as i cannot launch the app. The system tells me it is broken

Capture d’écran 2024-03-04 à 09 28 28

Do this: xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app

@SoftFever
Copy link
Owner Author

Fixed an bug, now it works pretty reliably.
Also exposed an new parameter: Conditional angle threshold
image

Noisyfox
Noisyfox previously approved these changes Mar 4, 2024
Copy link
Collaborator

@Noisyfox Noisyfox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

src/libslic3r/GCode.cpp Outdated Show resolved Hide resolved
@pierremilcent
Copy link

OrcaSlicer build 4317 for Macos arm version seems to be broken as i cannot launch the app. The system tells me it is broken
Capture d’écran 2024-03-04 à 09 28 28

Do this: xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app

Thanks ... it works.

@SoftFever
Copy link
Owner Author

@SoftFever Printables post has been updated to include these binaries and documentation of what this feature does.

where do you want me to start documenting this on the wiki so it doesn't live only in printables ?

Cool.
We can use this WIKI page. https://github.com/SoftFever/OrcaSlicer/wiki/seam#scarf-joint-seam

To update this WIKI page, we can raise PRs to this file: https://github.com/SoftFever/OrcaSlicer/blob/main/doc/Seam.md

@SoftFever
Copy link
Owner Author

I will push a scarf joint(only) slowdown feature into this PR soon
image

@SoftFever SoftFever changed the title Scarf joint seam: Allow apply to perimeters without sharp corners only [DRAFT] Scarf joint seam enhancement: conditional scarf joint and slowdown for scarf joint only Mar 4, 2024
@pierremilcent
Copy link

How to determine if the scarf method will apply on a round shape ? I cannot get it activated with this obejct :

Capture d’écran 2024-03-04 à 19 19 37 Capture d’écran 2024-03-04 à 19 19 22

Thanks.

@pierremilcent
Copy link

With cylinder it does work quite good.

WhatsApp.Video.2024-03-04.at.15.42.03.mp4

@RnDMonkey
Copy link

Fixed an bug, now it works pretty reliably. Also exposed an new parameter: Conditional angle threshold image

How do I interpret the conditional angle threshold of 155°? Is it one of the situations below?
image
Representing the threshold as the angular deviation from straight (picture "A") is more intuitive IMO, but 155° doesn't make sense as a default value in that case.

@tsmith35
Copy link
Contributor

tsmith35 commented Mar 4, 2024

Fixed an bug, now it works pretty reliably. Also exposed an new parameter: Conditional angle threshold
Y) Representing the threshold as the angular deviation from straight (picture "A") is more intuitive IMO, but 155° doesn't make sense as a default value in that case.

So here is a sample with the threshold at 119:

image

and here is a sample with the threshold at 120:

image

@tsmith35
Copy link
Contributor

tsmith35 commented Mar 4, 2024

So the threshold appears to be the largest angle for which a normal seam will be used. Above that threshold angle, a scarf seam will be used.

@SoftFever
Copy link
Owner Author

How to determine if the scarf method will apply on a round shape ? I cannot get it activated with this obejct :

Capture d’écran 2024-03-04 à 19 19 37 Capture d’écran 2024-03-04 à 19 19 22
Thanks.

I'm considering adding a feature to render scarf joints in different colors tonight. In the meantime, you can either check the toolhead moves, as I did in the animated image, or change the scarf speed and then switch to speed view mode.

@SoftFever
Copy link
Owner Author

Fixed an bug, now it works pretty reliably. Also exposed an new parameter: Conditional angle threshold image

How do I interpret the conditional angle threshold of 155°? Is it one of the situations below? image Representing the threshold as the angular deviation from straight (picture "A") is more intuitive IMO, but 155° doesn't make sense as a default value in that case.

It's B

This is a closed loop, so you might want to consider it as a polygon. The angle referred to here is the interior angle, which I believe is more intuitive.

@RnDMonkey
Copy link

How to determine if the scarf method will apply on a round shape ? I cannot get it activated with this obejct :
Capture d’écran 2024-03-04 à 19 19 37 Capture d’écran 2024-03-04 à 19 19 22
Thanks.

I'm considering adding a feature to render scarf joints in different colors tonight. In the meantime, you can either check the toolhead moves, as I did in the animated image, or change the scarf speed and then switch to speed view mode.

Different colors would be great, Or even a different type of object i.e "Seams" and "Scarf Joint Seams" so you can set both their color and visibility independently of regular seams. The thing I like about this from a UX perspective is I would default to hiding the scarf seams in the slicer preview because that's about what the actual result is.

@RnDMonkey
Copy link

Fixed an bug, now it works pretty reliably. Also exposed an new parameter: Conditional angle threshold image

How do I interpret the conditional angle threshold of 155°? Is it one of the situations below? image Representing the threshold as the angular deviation from straight (picture "A") is more intuitive IMO, but 155° doesn't make sense as a default value in that case.

It's B

This is a closed loop, so you might want to consider it as a polygon. The angle referred to here is the interior angle, which I believe is more intuitive.

Yeah, @tsmith35 's pictures were helpful. Now I'm thinking of it as "Scarf joint seam will be used conditionally if all interior angles in the wall loop are greater than 155°" or "Scarf joint seam will be used conditionally unless there is an interior angle of 155° or less". Not entirely sure which version of saying the same thing will stick in my head long-term.

@tsmith35
Copy link
Contributor

tsmith35 commented Mar 5, 2024

Yeah, @tsmith35 's pictures were helpful. Now I'm thinking of it as "Scarf joint seam will be used conditionally if all interior angles in the wall loop are greater than 155°" or "Scarf joint seam will be used conditionally unless there is an interior angle of 155° or less". Not entirely sure which version of saying the same thing will stick in my head long-term.

I think the difficulty has to do with interpretation of the threshold as being an exclusion vs an inclusion. Perhaps it would be more intuitive to say "Largest included angle for traditional seams" or "Traditional seam maximum included angle".

I'm also wondering whether or not external angles (corners) are evaluated for traditional seams.

@psiberfunk
Copy link

psiberfunk commented Mar 5, 2024

I'm currently working on a newer test model and additional optimizations with new features.. and one of the things i'm scanning is angles.. you can see here how decreasing the angle leads to "more and more scarf seam" on this model.

Ignore for a second the garbage overhangs and other defects and focus on how much of the seam is traditional vs. scarf in these images. Notice how the traditional seam "creeps up and disappears" as you decrease the tolerance angle.

From left to right :

-old (no scarf)
-155
-145
-135
-125
-115 (all scarf'd)

IMG_6458

@RnDMonkey
Copy link

(@psiberfunk I'm totally using "scarf'd")
There is a difference in convex vs concave contours around the threshold value. Here I've got a 120° angle cut into the model (calling it a concave 120° angle) and with a 120° angle threshold it is all scarf'd when it should be a regular seam.
image

A convex 120° angle on the same model uses a regular seam. When I change the threshold to 121°, I get an interesting mix of regular and scarf'd seams (that is all-regular seams once I further change the threshold to 122°):
image

@SoftFever
Copy link
Owner Author

(@psiberfunk I'm totally using "scarf'd") There is a difference in convex vs concave contours around the threshold value. Here I've got a 120° angle cut into the model (calling it a concave 120° angle) and with a 120° angle threshold it is all scarf'd when it should be a regular seam. image

A convex 120° angle on the same model uses a regular seam. When I change the threshold to 121°, I get an interesting mix of regular and scarf'd seams (that is all-regular seams once I further change the threshold to 122°): image

Indeed, it's not that accurate like we draw in CAD.

@SoftFever
Copy link
Owner Author

I'm considering adding a feature to render scarf joints in different colors tonight. In the meantime, you can either check the toolhead moves, as I did in the animated image, or change the scarf speed and then switch to speed view mode.

I take back my words...
Adding a new extrusion type and getting it rendered isn't as straightforward as I thought.
There's a fair bit of risk involved, and it would need a lot of testing to ensure everything like cooling and slowdown works right. Plus, the way it looks just doesn't feel quite right to me(as shown in the following screenshot from the prototype).
image

So, I'm going to hold off on adding this feature for now.

@RnDMonkey
Copy link

I'm considering adding a feature to render scarf joints in different colors tonight. In the meantime, you can either check the toolhead moves, as I did in the animated image, or change the scarf speed and then switch to speed view mode.

I take back my words... Adding a new extrusion type and getting it rendered isn't as straightforward as I thought. There's a fair bit of risk involved, and it would need a lot of testing to ensure everything like cooling and slowdown works right. Plus, the way it looks just doesn't feel quite right to me(as shown in the following screenshot from the prototype). image

So, I'm going to hold off on adding this feature for now.

Understood. That said, I think the way it looks in your prototype would be just fine. Better than I initially pictured - just a dot like the regular seams but independently visible and colored, placed at the start, midpoint, or end of the joint.

@psiberfunk
Copy link

psiberfunk commented Mar 5, 2024

Newest test results w/ 21 new model prints so far , particularly with a focus on overhangs.. : Inner/outer confirmed to be worse than inner-outer-inner. Smaller wall thickness (0.42 or 0.5 vs 0.6) is worse. Smaller layers also confirmed to be generally worse (0.16 vs 0.2). All of this was expected, but i'm just confirming its still true on a new model with overhangs... so the results seem to be generalizable so far.

Also tried slowing down further just for the scarf, which yielded little to no improvement over going at the already suggested wall speeds. (100 mm/sec . Tried 75, 65, 50 with no real differences).

With the theory that cooling could be the issue causing wall ripples for the overhang area.. I've also tried facing the scarf facing "into the wind" (directly in front of my aux fan on full blast) vs facing away (in a "low flow" area of the print bed)... and have not seen a huge overhangs improvement... suggesting i'm not cooling limited at the moment.

I'm running out of ways to try and improve my previous best settings here... ideas?

IMG_6463

@psiberfunk
Copy link

psiberfunk commented Mar 5, 2024

As you can all see from this video of one of the samples, the issues with the scarf seam with overhangs seems to start when the nozzle comes around and intercepts the start of the first half of the scarf , which I will call the "lead in". When the nozzle hits the lead in, and the lead in isn't flat/ well-behaved or otherwise is blobby, we start to get pressure and extrusion oscillations and artifacts and blobs as the nozzle either is rammed into the plastic or has nowhere to extrude other than outwards into the overlap space (with nothing supporting it). This problem compounds and grows until the artifacts are quite large .. although as you go up the print slowly "repairs itself" as 3D prints often do. By the middle of the video.. the seams have resumed idealized behavior, with the lead-in barely visible as a thin line between the thick ones.

The challenge here is apparently how to prevent this issue from starting in the case of overhangs. I believe a bad lead-in is leading to bad artifacts in these cases, and i've not yet figured out how to fix that. Ideas i haven't mentioned above yet that i've tried are welcome.

SeamsVideo_264.mp4

@tsmith35
Copy link
Contributor

tsmith35 commented Mar 6, 2024

The challenge here is apparently how to prevent this issue from starting in the case of overhangs. I believe a bad lead-in is leading to bad artifacts in these cases, and i've not yet figured out how to fix that. Ideas i haven't mentioned above yet that i've tried are welcome.

So on a vertical wall, pushing into the previous layer as flow tapers off works as expected. But on an overhang, the tilt causes the flow to be biased outward, toward the path of least resistance. I wonder if maintaining the path vertical to the previous layer (as opposed to moving outward to follow the tilt of the wall) would reduce the blobs. Perhaps a slight inward tilt may even be required to compensate? But at the least, I am curious to see what the results of the vertical path might be.

I need a toothpaste extruder simulator. lol Anybody here good with CFD? 🤣

@psiberfunk
Copy link

psiberfunk commented Mar 6, 2024

The challenge here is apparently how to prevent this issue from starting in the case of overhangs. I believe a bad lead-in is leading to bad artifacts in these cases, and i've not yet figured out how to fix that. Ideas i haven't mentioned above yet that i've tried are welcome.

So on a vertical wall, pushing into the previous layer as flow tapers off works as expected. But on an overhang, the tilt causes the flow to be biased outward, toward the path of least resistance. I wonder if maintaining the path vertical to the previous layer (as opposed to moving outward to follow the tilt of the wall) would reduce the blobs. Perhaps a slight inward tilt may even be required to compensate? But at the least, I am curious to see what the results of the vertical path might be.

I need a toothpaste extruder simulator. lol Anybody here good with CFD? 🤣

I think what you're proposing may be particularly tricky to calibrate.. it sounds like you're suggesting basically a bit of elephant foot style compensation ?

However, your understanding is similar to mine, but I note that the biggest problems don't happen at the final flow tapering, but when the "full fat flow" hits the lead in after the first pass has finished. So the problems seem to start to occur when that crossover point is reached, not necessarily as it begins to taper later in the scarf (although that can be a problem the quality is significantly better later in the scarf vs early).

I have two other proposals to try that might also let us tune:

  1. Z-Seam gap: The way i imagine this working is that the portion where the seam overlaps either starts with a Z-gap and then fades into "normal" or has a constant Z-gap for the overlap portion.

  2. Seam flow adjustment: a flow ratio override just for the seam portion.. e.g. so I can dial down the flow for the overlap portion.

As an aside, I do think the flow rationale/physical understanding explains why I inner/outer performs worse than inner-outer-inner... because when the wall is laid down it is pushed up against the inside wall in the former, but not in the latter, where there will still be space for it to flow (less resistance).

@psiberfunk
Copy link

A potentially related bug to scarf seam starting and potentially quite related to the cosmetic outcomes .. there seems to be a mistake in the "start speed" based on this example @SoftFever . I noted this even before your speed control, but had chalked it up to weird pressure equalizer behavior. However now that we have what should be a speed cap (75 in my example), the speed for this extrusion should be locked at max 75.. but somehow is hitting 82 for the indicated segment.
3MF attached as proof:
Tests22_27.zip

image

@SoftFever
Copy link
Owner Author

A potentially related bug to scarf seam starting and potentially quite related to the cosmetic outcomes .. there seems to be a mistake in the "start speed" based on this example @SoftFever . I noted this even before your speed control, but had chalked it up to weird pressure equalizer behavior. However now that we have what should be a speed cap (75 in my example), the speed for this extrusion should be locked at max 75.. but somehow is hitting 82 for the indicated segment. 3MF attached as proof: Tests22_27.zip

image

👍 Nice catch.
Will submit a fix soon

@SoftFever
Copy link
Owner Author

The challenge here is apparently how to prevent this issue from starting in the case of overhangs. I believe a bad lead-in is leading to bad artifacts in these cases, and i've not yet figured out how to fix that. Ideas i haven't mentioned above yet that i've tried are welcome.

So on a vertical wall, pushing into the previous layer as flow tapers off works as expected. But on an overhang, the tilt causes the flow to be biased outward, toward the path of least resistance. I wonder if maintaining the path vertical to the previous layer (as opposed to moving outward to follow the tilt of the wall) would reduce the blobs. Perhaps a slight inward tilt may even be required to compensate? But at the least, I am curious to see what the results of the vertical path might be.
I need a toothpaste extruder simulator. lol Anybody here good with CFD? 🤣

I think what you're proposing may be particularly tricky to calibrate.. it sounds like you're suggesting basically a bit of elephant foot style compensation ?

However, your understanding is similar to mine, but I note that the biggest problems don't happen at the final flow tapering, but when the "full fat flow" hits the lead in after the first pass has finished. So the problems seem to start to occur when that crossover point is reached, not necessarily as it begins to taper later in the scarf (although that can be a problem the quality is significantly better later in the scarf vs early).

I have two other proposals to try that might also let us tune:

  1. Z-Seam gap: The way i imagine this working is that the portion where the seam overlaps either starts with a Z-gap and then fades into "normal" or has a constant Z-gap for the overlap portion.
  2. Seam flow adjustment: a flow ratio override just for the seam portion.. e.g. so I can dial down the flow for the overlap portion.

As an aside, I do think the flow rationale/physical understanding explains why I inner/outer performs worse than inner-outer-inner... because when the wall is laid down it is pushed up against the inside wall in the former, but not in the latter, where there will still be space for it to flow (less resistance).

Thanks for all this testing!
I'm not keen on physically altering the Z gap, as in actually lifting the nozzle's Z position.

However, adjusting the flow rate can achieve a similar effect.
I've added a new option for the scarf joint flow rate.

@SoftFever
Copy link
Owner Author

Note: My focus will be on consolidating and stabilizing the existing features for the upcoming release. I won't be introducing any new options or features in the next few days.

@SoftFever SoftFever merged commit a4bf3da into main Mar 8, 2024
12 checks passed
@SoftFever SoftFever deleted the feature/conditional_scarf branch March 8, 2024 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants