Some Thoughts On Surface Modeling, vis a vis the 3rd Party Plugin Model

I was wondering as well, XNurbs does a good job creating surfaces. Unlike their marketing demos though, I don’t use it as a patch tool, I use it as a tool that generates clean 4-sided surfaces with individual continuity settings. But I digress.

If they will be acquired, that would lead to the following crazy setup for me.

V5 with VSR Shape Modeling and XNurbs. TSplines is finally defunct because of new SubD.
V6 with XNurbs.
V7 primarily for SubD, and hopefully XNurbs, but that remains to be seen.

A few stray thoughts to tack onto this discussion:

I think there’s a bit of a chicken and egg situation going on here with surfacing tools in Rhino. On the one hand, there are very few clamoring for the kind of tools that VSR provides - I get that we are a minority, but part of that has a lot to do with education imho. Virtually ALL Rhino surfacing courses focus solely on what I call “curves in->surfaces out” because that’s what the tools allow for unless you go to extraordinary lengths. Seriously, for giggles I bought a Level II course on Udemy (aimed at experienced modelers) just to see what it was like, and without naming names the surfacing portion of the course is utter garbage. Complete. Utter. Garbage. At least it cost me all of $11, the equivalent of a cheap movie ticket and in a way felt the same as watching a comedy. But, back to the point - we have a situation where folks are taught a workflow that is helpful when they start, but I think in the long run teaches bad habits - unnecessarily dense surfaces, an over reliance on input curves, an over reliance on trims and such. A big part of why I started doing my YouTube series is that I want to at least show people that there are other workflows out there, and how they can access those workflows in standard Rhino.

The number of new/revamped commands that would make a world of difference to users like me is not actually that big. It’s around 10. Two or three analysis tools, and six or seven surfacing tools. That’s it. I’m not expecting Rhino to be Alias - I’m just hoping that at some point McNeel will circle back to their core surfacing tools and update them. Like I said, they are OLD, and they show it.

The degree to which VSR is an incredible RE platform cannot be stressed enough. Realize that for RE surfacing, lots of companies are spending 10’s of thousands on packages that in my experience create mostly crap. Seriously, the number of auto surfaced aircraft models I’ve had to fix up to simply get them to go watertight is unreal. Now - I get that VSR is not an auto surfacing plugin - it’s aimed at the user who has more experience modeling, but it was also priced accordingly. I think VSR would have sold far far more units if they had actually marketed their product first and foremost as an RE tool - given the price and the quality of work that can come out of it, it’s very compelling when stacked against other industry options, at a tiny fraction of the cost. What I’m saying is that if McNeel was to create a similar toolset, simply with the ability to use both meshes and surfaces as reference, they could create a very powerful RE platform - so there’s value there beyond just the surfacing nerds like me.

Gustavo, I’ve never so thoroughly enjoyed someone mostly disagreeing with me! But I would point out - McNeel has decided to put significant resources into replacing the functionality that T-Splines provided with sub-d tools in 7, which kinda undercuts your argument maybe? Also - I’d strongly disagree that you can simply replace all NURBS workflows with sub-d tools/workflows. NURBS models and sub-d models tend to have their own unique feel to them - it’s not that one is better than the other, it’s that you need to have the right tool for the job. Sometimes that NURBS, sometimes that’s sub-d. Even in say the automotive space - there’s compelling reasons why the conceptual models get banged out in sub-d but the surfacing gets done in NURBS.

I would also note that there are parts of the 3rd Party plugin approach that work very well - we have an embarrassment of riches when it comes to rendering. If you want to use Rhino’s render, cool, if you don’t you have options! It’s not all bad, but it is for when there’s only one plugin that fills a role.

-Sky

4 Likes

If McNeel wants to create something with a wider user-base the trick will be to make the tool-set about fast surface creation that also happens to be light and clean. If you had the cohesiveness/fluidity of moi3d or gravitysketch with the lightness and control of VSR that would be cooking with gas. Maybe Xnurbs already does this?? For new designers this would really open up Rhino as a Fast concepting tool in concert with SubD. You open up the tool to a wider crowd like fusion360 and moi3d, rather than the specialty class A users. Who knows - this might simply be a curation and distillation of the multiple algorithms already in rhino to create a distilled toolbar like VSR.

4 Likes

I’m going to throw this out there as more of a question to McNeel. When laying out Primary surfaces edges/surfaces that need to be connected smoothly can be achieved by either matching degree and control points, or bumping up degree and control points. As outlined by Sky in his videos. This we know can be done in existing rhino with matchsrf, or manual control point modeling.

When creating Primary or Secondary surfaces that come up to a theoretical sharp/edge, I actually don’t care if said edges go watertight, as long as they get close and look good. Reason being I know with 100% certainty that those edges will be trimmed back to create the final tertiary rounds/blend surfaces.

What I would ask, is the following. Would it be possible to have a check mark in certain Rhino commands that turns off the edge matching to within file tolerance but instead respects the input geometry and keeps the Secondary surfaces light and clean at the cost of maybe not getting an edge match that is within file tolerance.

By default this would be set to match file tolerance, just so that people don’t end up with surfaces that are not watertight when they expect them to be.

But in cases for users that know these surfaces will be trimmed back for final rounds/blends at a later stage, they can accept the clean input surface at the cost of theoretical edge position being close, but maybe not matched to within file tolerance.

This would allow to create final Tertiary blends/rounds/fillets starting with very clean input surfaces, resulting in better blends. and since this theoretical sharp is completely lost during final blending it’s just not necessary to have it match within file tolerance at the cost of very heavy/dense input surfaces.

I don’t know if this is a reasonable request, but it doesn’t hurt to ask.

1 Like

Isn’t that just whether or not you check the “Refine” box on MatchSrf?

Yes, it is, what I’m asking is adding this option to other surface creation tools. We know that EdgeSrf respects input geometry but other commands do not.

NetworkSrf is the best example I can think of. Even if the input is 4 edges from single span untrimmed surfaces, it will return a degree 3 multi span surface.

Both VSR and Alias allow Explicit control (something like an integrated “Rebuild surface” tool running during another command) over the structure of the surface of most of their modeling and editing tools. Explicit control is a huge deal in achieving clean and smooth surfaces that are also easy to edit.

2 Likes

Yes, you are correct and I agree 100% with you. However, If having explicit control over the output is too much to ask for at this point, respecting input geometry could be a great first step, and the result would be predictable.

If the input geometry is matched pairs of Degree3 and Degree 5 curves the output would be a surface Degree3 U and Degree5 V, not a multi span Degree3 surface. As per Sky’s videos, this surface could consequently be bumped up in degree for matching if needed.

If the output is a dense degree3 mutlispan surface There’s just not much you can do with it after creation.

I was going to do a detailed reply but I have a project to finish. The short reply is I don’t believe what Mark is requesting is possible for NetworkSrf without a melt and re-pour of the NetworkSrf underlying equations and algorithm. That is based on observations of how NetworkSrf behaves and a bit of knowledge of B-Spline/NURBS math and surface generation algorithms.

FWIW - not even VSR allows you to make a four sided surface with continuity over G0 from the start - it pops out a clean surface that matches the input degree/span and then the expectation is that you match it. It’s identical to Rhino’s Surface From Edge Curves (other than a few nifty tricks like being an excellent tool for RE). So it’s sorta like - if you just wanna bang something out, sure go ahead and use NetworkSrf, but if you are looking to do something more refined then it’s Surface From Edge Curves and MatchSrf.

Agree. NetworkSrf is built to do all the edges to tolerance, and ignore degree/point count. That’s why I say it’s not a primary surfacing tool if you’re looking to do higher quality surfaces. Just make clean input geometry and Surface From Edge Curves.

Hi Sky, you can create a 4-sided surface with continuity higher than G0 in VSR. Multi-Blend with Single Surface checked gives you explicit control over the degree of the output surface.

I don’t consider this to be a primary surfacing tool, but it’s very useful when creating fillets and rounds. The functionality is actually very, very similar to XNurbs if used this way.

@davidcockey, you may very well be correct on that. I don’t know anything about NURBS programming, which is why I posted it as a question.

ha! you’re right! totally forgot you can feed four sided stuff into MultiBlend, I only reach for that when I need to do five sided holes. Thanks!

OMG…so many words. Not so many ‘big’ ones, but so many. I gotta comment too…

eh, it’s Saturday, I’m having another beer.

Anyhow, please get this all sorted by the end of next week, and I’ll buy you all a round… :wink:

Thank you!

I haven’t tried VSR from a long time, but was not there an option to choose different continuity for each individual surface edge? I remember that there was some button that opened an additional pop-up window for some extra control. Or, was this only possible with the VSR’s “Match surface”?
Both, Alias and Solidworks allow to choose different continuity for each edge, similar to Rhino’s “Network surface” tool (but without the approximation that Rhino does).

I think you’re thinking of the Align command? That one is matching, with different continuity for each edge. For surface generation - Mark is right that you can sorta hack the MultiBlend tool into doing fun and useful things

I think that “Blend surface”, “Network surface”, “Loft”, “Sweep 2 rails”, Sweep 1 rail" all could benefit from having an added explicit control in Ehino 7. As I mentioned above, sort of “Rebuild surface” integrated in these commands.

Hi Mark - For NetworkSrf, I think what David says is about right - its job is not to care about input structure. Other commands are more or less headed to paying attention - Sweeps and BlendSrf do now, when conditions are right.

Fow what it is worth, here’s a tool I’ve been using quite a lot lately- for the reasons you outline - simple, matching outoput… Think of it as FinLoose… it makes norrmal, tangent and angled fins that, for better or worse, respect the input curve…

FinTools.py (13.6 KB)

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"

-Pascal

2 Likes

Hi Pascal. I had this script from a few months ago and not sure if this is a newer version, but both give the same error message if I try to extend the edge of a regular rectangular. However, if I choose a curve and then a surface, it works. Here is the warning. Rhino 6 evaluation.

OK - thanks, I’ll have a look. I’m sure there is plenty to fix…

@Rhino_Bulgaria - so far I am unable to get this error - can you give an example of this:

Here it seems fine so far on planes, and well, any surface I’ve tried so clearly my imagination is deficient… hmmm. is your Rhino SR4 or earlier? - it would have to be, to hit that line in the code, if I am reading my own stuff correctly.

-Pascal