Rhino 9 Feature : G2 continuous patches

This is likely a very poor intepretation, and probably patronising, but I think about it like adding extra requirements to a person hanging on for dear life suspended between two sides of a cliff.

They are hanging on with thier hands, so thier forearms, upper arms, and body are otherwise freely hanging (G0).

You then demand that thier forearms must meet the cliff edges at a tangent. To achieve this, more energy is expended towards the other components; the biceps and body, but they manage (G1).

You then state that both thier forearms and thier upper arms must achieve tangency, so the cliff top is level with thier shoulders. More energy is then placed towards the body (abs, chest), but again, they manage (G2).

The problem now is that thier elbow (first CV) and shoulder (second CV) is level with the two cliff tops, but the body (and hence the other internal joints) is doing a lot of work to maintain that position. Accordingly, the muscles on the body become stressed. The problem then becomes optimising (minimising) the energy that the body is using to maintain the requirement, and releasing joints that need not be involved (span/CV, and surface tension/energy reduction; I don’t need this pair of abs for this activity).

The problem is, they usually rely on numerical approaches which can only ever return an approximation to often non-linear problems. In some sense, it’s always the same problem; that you are trying to fit a model to the data, and while in areas that model becomes acceptable (you gain continuity, your model reproduces the data exactly at the edges), this comes at the expense of error in other locations where the solver cannot reconcile your need for continuity, with how the parameters required act somewhere else, without looking ugly at certain spatial scales.

So at the end, for surfaces with few relatable parameters to eachother in 3D space, you get a choice, you can have your pretty edge continuity, but you may accept some level of internal problems (Bobi demonstrated Xnurbs doing this). Alternatively, you can get highly ideal scenarios where the solver has an easy time finding solutions where all the joints are quite relaxed (you have flat, level cliff tops all around, so you can place your hands wherever you want, your wrists and joints are not twisting down non-level cliff tops as you rotate, and the right-hand set of abs isn’t contradicting what the left is trying to do, no twisting, for example).

If this way of thinking is very wrong, then I will delete later. But it tends to be how I think of it anyway.

5 Likes

Please share an example where you get results that are not giving good zebra stripes. There’s a number of reasons why that can happen.

2 Likes

Fill surface

3 Likes

it would be nice to have the iges of the result, so as to make a comparison with Rhino and Xnurbs of this example

Tried the _FillSrf command…

Shouldn’t the isocurves follow the curved edges a bit better? Is there a way to achieve a better fit?

I didn’t try it with the rhino commands, but with xnurbs, since it was causing problems, I did a quick check on where the problem was, tomorrow if I have time at work I’ll try to redo the example in the previous video in order to do the tests at least on rhino and xnurbs

FillSrf Advanced options - Did you use Domain=Projected or Domain=Molded?

From the first post in this thread:

Neither looks nice?

Molded:

Projected:

Interesting. I’ve had better results in the very limited testing I’ve done so far.

So I’ve been seeing videos like these https://www.youtube.com/watch?v=KItW4SbBCW8 where folks try to do these n-not-equal-4-sided patches with 4-side surfaces and trimming, even when sometimes n-side-patch function is present.

That got me wondering if it’s better idea they just did this n-side-patch method instead of the hassle of doing it with 4-sided surfs, or maybe there’s some key difference/limitation behind it?

Here’s a similar object to play with:
FillSrf_Test.3dm (147.9 KB)

Tools such as xNURBS, FillSrf and Patch are generally relatively simple to use and do not require any special knowledge. But when used to fill holes with an arbitrary number of sides the result is a trimmed surface with a relatively large number of control points in each direction. It can be difficult to nearly impossible to modify the results while retaining the desired continuity at the edges if needed.

Filling a hole which has five or more sides with multiple, untrimmed four sided surfaces is not as simple and usually requires a bit to considerably more knowledge than the tools mentioned above. However the result may have considerably fewer control points and will be able to be modified while retaining the desired continuity.

So there are good reasons for both approaches, depending on the situation, end use of the model, and the user’s knowledge and experience.

2 Likes

This is interesting really.

One wonders if methods like this fall into local solutions that are goverened by a series of ā€œfirst guessā€ parameters, like you would for a Least Square fitting algorithm.

If this is the case, I am curious if for cases like this, it would be nice for the user to be able to ā€œhelpā€ the fitting algorithm by providing maybe the result of a TweenCurves, so it at least starts the optimisation around the guidance curve. But I don’t even begin to understand how the optimisation is parameterised or initialised.

Perhaps in this case, the ā€œSā€ shape at the Y blend is heavily skewing what might otherwise be a nice solution. Most of the energy would be tucked up around this area I would imagine, so a lot of the reduction method will stop caring about what is happening far away from the Y blend. Again, I am making guesses.

Option to define an initial ā€œstarting surfaceā€ has been requested.

1 Like

Super. A starting curve would/could be a reduced case of an input surface.Really, it should define a preferred isocurve direction, rather than a form. But anything that helps…

thanks for the file, I started a test with Xnurbs, I will leave a text with the settings so that you can see the parameters used. when I finish I will share the results file


4 Likes


Xnurbs_Test.3dm (4.3 MB)

3 Likes

Another test: 5 edgs
Rhino Surface test1.3dm (15.3 MB)

This is an interesting model - there are normal deviations on two corners that make it more difficult for FillSrf and looks like xnurbs too. This means that whatever you try, the result will never be fully G1- or G2- continuous.

ouch, I didn’t check for that, but should have.

1 Like