Rhino BETA Feature: Patch re-implemented

  1. We tend to be happy when downstream operations don’t break history.
  2. It’s unlikely such happens by accident.

-w

But if an operation scrambles the indices, I think it is better to break history than to mess up the model, I find. I’ve had many situations where this caused an issue in a part of the model I wasn’t paying attention to, or to multiple at once.

Question: I was practicing with this example and noticed that Patch seems to be affected by the selection order. With the same settings, I get two different results in how the isocurves are distributed across the surface. Shouldn’t it produce the same result? With the same settings and the same input geometry, I’d expect it to generate the same surface every time. Or am I missing something?
passaggio g0 g1-g2.igs (148.2 KB)


With the “Untrimmed” option.

@menno Does the Untrimmed command no longer support internal constraints? They were really useful!

See Patch (New) Untrimmed does not support internal points/curves Menno replied in it. Looks like internal constraints are currently disabled. See the link for a test command.

RH-95028 is fixed in Rhino BETA

Here is some feedback for BETA
(9.0.26181.12303, 2026-06-30)

With the latest update I noticed a little step back in the patch tool.

Before the “Refine” slider worked very well to add the necessary isocurves to match the patch to the neighboring surfaces. Even with just 1 U and 1 V span it added what was necessary to achieve G0-G2 continuity.

With the newest version I need to up the U and V spans by hand sometimes to see if at some point it clicks to have enough spans to match.

Personally I was very happy with the way it worked before, because it created rather clean surfaces with a minimal amount of spans.

Trying to replicate the behavior now showed that sometimes the U and V spans don´t update when changed?

Maybe that is some helpful feedback, I am very glad the tool is part of Rhino now, since it is very handy for a lot of situations.

Please can you share a model where this is problematic? There have been recent changes to how 4-sided untrimmed patches were made with the objective of delivering results with fewer control points. These changes may be causing what you see.

Here is an example, when filling in that surface as untrimmed, the U and V selectors as well as the refine option do nothing. The resulting surface looks fine, but I would like to have control over the points, since I might e.g. use that surface to recreate the surrounding ones.

main surface.3dm (269.6 KB)

Yes, thank you. I have good news: the next BETA version - which should be available later today or tomorrow - has the action of U- and V-spans restored, although implemented slightly different. Please be a bit patient for the next version, which will be accompanied with a new post that describes the recent changes in more detail.

For more details on recent change to 4-sided untrimmed patches, please visit this separate topic.

@menno I’m sharing this file I’m working on. The Patch command freezes, so it’s probably a bug.
Plateau-Patch si blocca.3dm (236.3 KB)


After trying it on that specific area, when I use Patch on other curves it works. However, Rhino becomes very slow, and the Patch command doesn’t start immediately—it begins only after a while.


With XNURBS. rhino8


Apparently, the issue only occurs in that specific area. I continued using Patch Untrimmed and Project elsewhere, and everything worked fine.

Thanks, we have this issue logged as https://mcneel.myjetbrains.com/youtrack/issue/RH-97345

RH-97345 is fixed in Rhino BETA

I have an example geometry that worked fine in ~ April.
The nice result is also in the file.
Now I can’t get it to work anymore.

The tangency at the cylindrical bulges in the opposite direction.
And regardless how select the constraints, there is no usable result.
2026-09-01_PatchProblem.3dm (750.5 KB)

Thank you. Yes, this orientation is no longer supported at the moment. The best alternative right now is to duplicate the edge as a wire curve and to use it as an I (Internal) constraint. This will not give tangency at the cylinder’s edge. Another option is to choose the upper edge of the cylinder, so move the cylinder towards the other surfaces to get the upper edge at the location of the lower edge. If that upper cylinder edge is too far away from the surface edges, however, the initial result is bad, leading to the strange shapes you also see in the video. But if the upper edge is moved to the location of the lower edge, then you will get tangency. However, you’ll need to untrim, then re-trim the result as the trimming tries to use all curves in a single trim operation. This trimming problem is another ticket that is still open and needs to be looked at.

I have created RH-98247 for this.

At the moment, ok, then I hope it’s get fixed “soon”.

We may end up not supporting it. The tangent continuity works if the other cylinder edge is used. What definitely needs fixing is the trimming.

Oh, that would be a pity.

Can’t get that to work in here.


I wonder why it sometimes works as expected.
The cylinder is rebuilt to degree 3.


IMO the trimming is not a problem, that’s a few clicks only.

Hi @menno , after the latest update there seems to be a serious problem with the Patch command.

Yesterday I had the same issue with another file. I initially thought it was an isolated case, but today the problem has occurred again with the file I’m currently working on.

Patch either completely freezes Rhino, forcing me to terminate the Rhino process through Task Manager because it locks up the entire PC, or, as you can see in the screenshot, it creates a distorted patch.

I’m sharing the file so you can investigate the issue.
Tacco-patch fallisce.3dm (175.4 KB)

Here is the surface created with XNurbs, which works without any problems.