A plea for better nurbs surfacing tools !

   1807   15   2
User Avatar
Member
10 posts
Joined: Jan. 2015
Offline
Hello,

Just to introduce myself, I'm CG generalist since nearly 20 years, and I have spend lot's of time modeling stuffs (mostly hard surfacing).

I started with Subdivision modeling during the first 10-12 years (Lightwave, Modo, 3Dsmax), and added nurbs in my tool-bag 8 years ago, with a very easy nurbs software called MoI3D.




(Purpose of the images is to illustrate that I have suffer with both technics).

I'm using Houdini 18 months ago, mainly for environment and procedural modeling, and recently I started to focus a little bit more the nurbs surface tools (rails, skin, sweep), and I'm a little bit confuse how “rustic” this tools are, especially the skin operator (had a violent fight with this one this weekend).

So I did some research too, and it seems like the main idea about this tools are :

“we did nurbs tools for years, nobody cared, the maths are super hard and apparently not worth it, don't expect any updates”.

I don't think that I can change anything about this statement, but I had to try something.
So here's 3 ‘simple’ surfacing example from MoI3D, a tool developed by a single person (Michael Gibson), and I think he's using a library called SOLID++ from Integrityware (http://www.integrityware.com/).

Example 1: Loft.
Lofting between 4 closed curves, with different number of CV's, one of the profile is actually a filleted square shape. No curve sorting needed, starting point of every curves are not aligned.



Example 2 : Sweep.
Sweep along 2 rails, with a third curve as additional control (scaling rail). No special alignment for the profile closed curves is needed.



Example 3 : Network.
4 U curves, 3 closed V curves. While the U curves are drawn very carefully, the V one don't even touch the rails. No curves sorting needed, no trimming needed.



This kind of improvements will change a lot the usability of the Houdini tools in that area, because in the actual state, I can understand the lack of success and the limited usage from the users.

Maybe relying on an existing nurbs library might help ?

As a side note, I was only able to load the first 2 models in Houdini, using IGS. The parametrization doesn't look that bad.





It seems there was a good push to add better poly-modeling tools (the new boolean is awesome), it's off course welcome. But I also believe that building shapes from curves is something much more procedural friendly by nature (compared to the hundreds of pushing/pulling/edge looping needed for box modeling).

This last video is just to illustrate what “modern nurbs package” can do .




Cheers.

Pascal.
Edited by PaQ WaK - April 16, 2018 17:44:02
Gameloft
User Avatar
Member
1479 posts
Joined: March 2014
Offline
You'll get no objection from me. Hell, I'll even support your request, but let's be realistic here. The VFX/animation world revolves around polygons and considering that Sub-D modeling in H still has a lot to catch up with other programs, chances that NURBS will get any significance development time in the near future are tiny, if not non-existent.
Here's to having a dev. join in and falsifying what I've just said!
https://www.artstation.com/artist/mcnistor [www.artstation.com]
metaphysical wildcard
User Avatar
Member
103 posts
Joined: May 2016
Offline
Have you tried Rhino for NURBS modeling?
User Avatar
Member
3 posts
Joined: Oct. 2008
Offline
What is your method of getting objects from Rhino to Houdini?
User Avatar
Member
65 posts
Joined:
Offline
Better NURBS would be awesome, I also agree that modeling from curves does have more strengths for procedural modeling than Subd's.
User Avatar
Member
465 posts
Joined: June 2006
Offline
+1

i would love to see a B-Rep based Kernel inside Houdini for getting advantages from both world (CAD) but i'm sure it won't happen. When there is no customer base it doesn't make sense to risk resources for functions that only a handful will use.
User Avatar
Member
92 posts
Joined: Aug. 2014
Offline
PaQ WaK
This kind of improvements will change a lot the usability of the Houdini tools in that area, because in the actual state, I can understand the lack of success and the limited usage from the users.

Maybe relying on an existing nurbs library might help ?


First of all, I completely agree that NurbS in Houdini are not best on planet, even for some typically DCC tasks, not only compared to CAD app (where no one DCC is competitor when it comes to modeling). For example my bad surprise were significantly slower spatial queries, ray-cast or closest distance, in comparison to Softimage ICE, where they are also slow compared to querying plain polygons, but not *that* slow.
As you probably know, some NurbS related SOPs were already removed from H, like Paste an Unpaste SOP (different functionality than usual paste, btw), perhaps some others too. Perhaps they are optimizing the code, not really in favor of Nurbs.
Now, that smart interpolations in MoI… well for my taste, exactly these were too unpredictable, pushing me toward Fusion 360, which is IMO ‘modern’ app, at least conceptually much more modern than 1998 Rhino, basically destructive NurbS modeling style. Fusion 360 has generally usable history, built-in subd style modeling and Nurbs blends/fillets.

To avoid ‘nurbs war’ here, both mentioned CAD apps are affordable, price is several times smaller than first full commercial Houdini (so, not Indie), there's a lot built in them on top of libraries, there's respectable user base. In short, it will take a long for something like H to became competitor in nurbs modeling field, and… people will have to recognize that.

Anyway, if you just want, no big deal for you (considering to what you already posted on Modo forums), to build your own lofting, railing and such. Basically you can use a grid primitive (grid has uniform ordering of point numbers, making it easy to remap IDs to ‘virtual’ UV) and interpolate along UV of curves (UV via Primitive Attribute VOP makes it independent of point count), using Spline VOP (has b-spline, catmull-rom and other interpolations) perhaps something related to bounding box to get zero UV on curve. These things are possible without additions to H, as well as rectangle with rounded corners and such. However, not that much of these things to find for download…. Me to, while ago I made a number of HDAs, but never tried to organize all that in something usable for others.
Edited by amm - April 18, 2018 16:49:32
User Avatar
Member
10 posts
Joined: Jan. 2015
Offline
@bobc4d

Yes I know Rhino a little bit, I actually played a while with Grasshopper before starting Houdini.
It was a really great experience, but I can't go back to anything but Houdini for procedural/parametric modeling, the main reason is probably the way Houdini display the data flow (sop node graph), I find it so easy to read and to manage compared to the spaghetti mess from many other package.

@amm

I'm not expecting Houdini to compete with fusion360 (I would love to see that, but I try to stay realistic too) … but just some enhancement of the skin operator for example, so it might handle more complex surfacing based on curves. Again I'm seeing the problem in the parametric modeling perspective. For direct modeling Modo, Moi, or Fusion are just fine.
(Houdini with Direct Modeling HDA from Alexey Vanzhula is actually not that bad either).

And what I have posted on the Modo forum is maybe a little bit misleading, because there is no way I could write my own network/sweep/rail hda. The interest from me is there, but I know my limits too
Edited by PaQ WaK - April 18, 2018 22:45:47
Gameloft
User Avatar
Member
131 posts
Joined: July 2005
Offline
Hi,

I definitly agree that Houdini should have better curve/surface tools. But as amm already mentioned, with VEX you have a very powerful weapon, to compansate many missing features. Especially tools, where you create surfaces from curves like (sweep, rail, network, blend, revolve, extrude, …) can be done in VEX. Something like surface/surface intersections (surfsect ~ which is not working good for me btw), might be harder in VEX (I don't have an idea, how to do it - you need marching algorithms etc…). But for many other things VEX quite good to build workaround or even better - tool where you have full control over what you want.

@amm
do you have a rough time factor, how much faster are xyzdist/intersect equivalents in ICE?

@PaQ WaK
if interested - I've attached some files, where I've tried to rebuild some tools, where you create surfaces from curves.
These tools are very experimental and will not work for every situation. It is more an idea, to see how things work.

Attachments:
Loft.hipnc (92.0 KB)
Birails.hipnc (186.8 KB)
sweepblend.hipnc (119.3 KB)
Fin.hipnc (92.9 KB)

User Avatar
Member
92 posts
Joined: Aug. 2014
Offline
Aizatulin
Hi,
@amm
do you have a rough time factor, how much faster are xyzdist/intersect equivalents in ICE?

Intersect/raycast was close, perhaps 1.5 times or so, xyzdist/closest location was much more slower, perhaps 3-4-5 times. While it is of course hard to isolate the evaluation of spatial query, alone, it always depends of what is evaluated later, normal, position, whatever. Wasn't a big problem btw, used both for getting the static, ‘rest’ uv, later it was just a uv primitive attribute to get another position or something similar, which is expect-ably fast.
According to behavior of these spatial queries in ICE, in case of NURBS, there were same errors in same cases, as with older, standard SI deformers like Shrink Wrap, so I believe that ICE variance is integrated old functionality, created years before acquisition by AD. In other word, don't believe that ICE has anything related to recent AD acquisitions like VRED.
User Avatar
Member
131 posts
Joined: July 2005
Offline
amm
Intersect/raycast was close, perhaps 1.5 times or so, xyzdist/closest location was much more slower, perhaps 3-4-5 times. While it is of course hard to isolate the evaluation of spatial query, alone, it always depends of what is evaluated later, normal, position, whatever. Wasn't a big problem btw, used both for getting the static, ‘rest’ uv, later it was just a uv primitive attribute to get another position or something similar, which is expect-ably fast.
According to behavior of these spatial queries in ICE, in case of NURBS, there were same errors in same cases, as with older, standard SI deformers like Shrink Wrap, so I believe that ICE variance is integrated old functionality, created years before acquisition by AD. In other word, don't believe that ICE has anything related to recent AD acquisitions like VRED.

ok thanks for the info.
User Avatar
Member
10 posts
Joined: Jan. 2015
Offline
@Aizatulin,

Thank you very much for sharing this !
Gameloft
User Avatar
Member
12 posts
Joined: Oct. 2013
Offline
I've also requested this, but leaning more towards nurbs solid modeling/booleans, fillets, projections.
Houdinis new boolean sop is great, but in any situation where curved objects meet, you're screwed when it comes to beveling the transition.
User Avatar
Member
1 posts
Joined: June 2014
Offline
awesome stuff as always pascal !
User Avatar
Member
3 posts
Joined:
Offline
For me it is more a design philosophy question, than a technical one: solid modeling tools let you make things that look like they were made with solid modeling tools.

It's not true that nurbs modeling isn't used in vfx. For example look at the work of Kirill Chepizhko, part of the reason his work looks so real / industrial is because it was made with the same tools and workflows that are used in industrial design to make real industrial objects (fusion 360 in this case) - i.e he doesn't have to adapt his workflow to make subd modeling look like solid modeling, he just uses solid modeling.

Houdini wouldn't necessarily have to have nurbs tools with CAD level precision, but if Sidefx provided some updated nurbs tools that would open up really interesting design approaches for procedural modeling. They already have some great retopo and poly reduce workflows, so the pipeline from nurbs to subds is kind of already in place.

Combine this with proceduralism and amazing things could happen.
User Avatar
Member
1292 posts
Joined: Sept. 2015
Offline
Rates comment in reference to industrial design brought some thoughts I had in the back of my mind.

In the past I've done some design for 3d printing with SolidWorks.

At one point I had consider going with purchasing a SW full license which was about 5-6k.

I Opted to give Rhino a chance with only about a 1k investment.

I found I had to adjust a fair bit and accept the need to take more steps to accomplish the same as in SW, but the price point I felt balanced that out somewhat.

The same has happened with Houdini Indie…only $300, and even more steps than Rhino.

But I'm still in the process of refining my “Houdini Pipleline” for 3d printing, and even with more steps required it takes compared to Rhino/SW, I would still choose Houdini - exception being if I had a client make a request on short notice and also require quick turn around.

More robust nurb tools in Houndini I think would be a done deal for more reasons than just the modelling - I think it might open up markets for SideFX.

Imagine say a industrial design team for a company that wants to promote/manufacture ideas beyond say simple things like a hobbyist would do with 3d printing.

But something that might required an investment.

Having a great nurb toolset in which the product is designed and ready to be manufactured, can also (the same model/parts) be easily incorporated into an animation for promotional and illustrative purposes.

I know it's not much of a pipeline reduction, as could simply take a model from something like SW/Rhino, file convert, then have your way with the animation.

But it might open up more possibilities with efficiency/creativity.

Architects, might appreciated this idea too.
  • Quick Links