Rhino WIP Feature: Elmo. A new Rebuild command for Curves

Would it be possible to get a toggle for symmetry?

Will the new Rebuild (Elmo) be able to be specified only by Point Count and Degree, or will it also be possible to specify a maximum Deviation? I know there’s a Rebuild Non-Uniform, but perhaps Elmo uses better algorithms and would it be possible to obtain curves that meet the criteria with fewer control points?

Another vote for specifying a maximum deviation and allowing the point count to be decided by Elmo - who we know can count - well at least to 5 :wink:

the left is an old MFC dialog, I don’t think that will change for Rhino 9

The new Rebuild technology doesn’t work well with symmetry. It is on the list as:
RH-91839 Rebuild can’t create symmetrical curves

I think you could eventually script this, but it will for sure be very slow. It means Rebuild needs to perform a brute force trail and error until it reaches your desired deviation.

In the current Rhino WIP rebuild now includes a rebuild to tolerance option.

After the latest update, the ā€œDelete Inputā€ command does not delete the curve.

Yes, seeing that now. As a temp workaround: turn off and back on should make it work

I hope Rebuild goes back to being reliable. Today I found it quite frustrating to use, especially since it’s something I rely on constantly in my workflow.

Can you clarify what that means?

I meant that it shouldn’t have bugs like this, with settings not working properly. Today I spent the whole time selecting curves just to figure out which one was the new curve and which was the old one—it was quite frustrating. Doing it a couple of times is fine, but if it’s a command you use repeatedly while drawing, it becomes a bit of a torture. :downcast_face_with_sweat:

@brvdln I’ll send you a newer build that has a fix.

Thank you :grinning_face:

This is a great feature & is a very helpful!

It would be super helpful if when you switch to rebuild mode the Max Point Count is set to the current point count & that the tolerance defaults to something other than 0? Maybe 1 unit? At the moment i get a blob on the first run until i make these changes :jack_o_lantern:

I am also seeing some significant lag interacting with the UI (I guess while the engine runs) but the results are excellent :smiley:

I have seen a few examples where nearly co-linear spans could be joined to simplify the output significantly - might that be something that could happen automagically? See blue shapes on the file I have DM’d you.

This will be a great addition to Rhino 9, any news on an API in Rhino Common for this functionality?

the default (0) actually works as document tolerance, which is currently the minimum value that will be used, but there’s a YT open for that to change it.
RH-94111 Rebuild: to tolerance starts with zero tolerance, unable to get strict tolerances

RH-94339 Rebuild: set max PointCount to current PointCount Value

RH-94339 is fixed in Rhino WIP

is there a plan to make ā€œelmoā€ accessible somehow in grasshopper?

On a similar note, is Elmo accessible via RhinoCommon?

Yes, it is currently exposed through

    public static NurbsCurve CreateNurbsCurveFit(Curve curve, Interval domain, 
      NurbsCurveFitParameters rebuildOptions, 
      out Line maximumSeparation, out double thisSeparationParameter, 
      out double nurbsSeparationParameter)

on the Curve class. This may change as we haven’t frozen our SDK yet, but in general it will probably be some function on the Curve class.