Yeah, they should keep Elmo as well.
Silly question, could this feature not simply be called “adaptive rebuild” and be a checkbox within rebuild? Sheerly because I’ve only now found this feature by chance and had to go searching for what it was ![]()
Absolutely amazing feature for my line of work, great job!
In the October 7 Rhino 9 WIP, the Rebuild command uses the nw Elmo fitting algorithm to rebuild curves. Currently the access via Rebuild does not offer the Smoothing, Uniformity and kink splitting options that are available in the Elmo command.
On or after October 14, there will be a RebuildOld command that runs the code used in Rhino 8 and pre-October 2025 versions of Rhino 9 WIP. The user interface for Rebuild will offer the new Elmo versions.
private void RunScript(
Curve crv,
int count,
int deg,
bool PTarget,
ref object curve)
{ Component.Name="Rebuild Elmo";Component.NickName="Elmo";Component.Description="Elmo C# Rhino9Wip";
var c= crv.RebuildElmo(count,deg,PTarget);
curve=c;
}
HI @Gijs
@dale
@pastrana
The method Curve.RebuildElmo(int pointCount, int degree, bool target) always returns null
Is this a bug? !
is it Bug? Test in:Rhino 9 SR0 2025-10-28 (Rhino WIP, 9.0.25301.12305)
RebuildElmo c# Api.gh (12.2 KB)
Will offset be also using Elmo behind the scene? or will that always need be a two-command sequence?
This would be a great improvement.
I’m not sure how offset works to keep curves within tolerance, but I doubt it uses rebuild.
@flexibility afaik your post was answered elsewhere, but if others wonder: the Python version of Elmo has been removed from the wip.
The latest version of Elmo lost the ability to add a range of points. it also now feels too close to the current rebuild in the sense that there are lots of points needed to get a decent curve and the points are pretty equally spaced instead of trying to maintain the curve with as few points as possible.
Are you referring to the ability to let Elmo figure out the best option based on deviation?
Please post an example. AFAIK the algorithm hasn’t changed between the command line version and the current dialog version.
Elmo curve.3dm (1.9 MB)
This is what the curve I just was messing with. to get a reasonable point distribution i usually will have to find the radii and split them out. simplify curve worked on most of this curve but the outsides left and right side are super dense.
this is good for what it is. I do agree manual intervention would be necessary to get the two curves on main curves on the left and right to be more simple as well as the flat ends to be lines or line like.
I appreciate the help because the kink splitting looks like something i need to play with more in this tool to get desired results. I normally would split out what i would know as radii and lines and use Elmo to capture the spline sections as needed.
@Gijs, this is slightly off-topic, but could we please have more visual consistency with the UI?
There are 5 different input types and 4 different alignment targets for controls.
Left aligning all the labels, right aligning all the inputs would already help a lot. Also, Smoothing/Uniformity/Kink Splitting all could use the same input type. Either a slider or a dropdown. But dropdowns should be the same width as all the other inputs.
Just my 2 cents…
@mrhe thanks for the feedback. For sure this will not win the graphical design award in its current state.
I can change kink splitting to be a slider as well if I can get away with the label width it generates.
Kink Splitting (G2 Medium) is probably too long, so I either need to split in two lines or find a shorter option like Kink Splits (G2 Medium) or Kink Splitting (G2 M) and hope for the best in German and French translation ![]()
On Mac the room is slightly more limited (and I notice now that one of the labels is misbehaving)
The checkboxes: It is possible to right align them, but that’s a compromise for functionality and would make the dialog wider as well. If the label is separated from the checkbox you can no longer click the label to switch the check. I have mixed feelings about right aligned checkboxes, there is a bit of a disconnect I find. But graphically it looks better, I agree. Both are used in Rhino UI. Properties is using these right aligned check boxes for example.
In GEC and Patch I’ve been using toggles for checkboxes, these have a larger hit target, but it’s not sure they will stay in Rhino 9, since it would mean we have 3 different flavors (toggle, Eto and old MFC checkboxes), so I opted for not spending any time on using them in this dialog for now until that decision is made.
Good Afternoon,
I have just been revisiting Elmo in the latest WIP by testing on our customers CNC cutting profiles.
I am excited to be able to get great results with the Kink Splitting and Smoothing set to 0-3.
I’d like to ask your advice on how we can use this new functionality for our CNC cutting customers.
The use case is that they each cut many files per day which each have hundreds of curves which would benefit from Rebuilding from polyline to smooth curve while preserving large kinks and avoiding large distortion. This makes manual application and tuning to each curve infeasible.
The challenge i fear is that the Rebuild command is very sensitive to the number of points for the rebuild. I cannot obtain good results running on multiple curves at the same time.
Ideally what we’d like to do is drive the algorithm the opposite way - give it a tolerance figure to shoot for and let it choose the number of points feely to achieve the tolerance .
Is that a possibility?
We are more than happy if the answer is to code something up - is there RhinoCommon API available for ELMO?
More than happy to share example files and workflow by DM.
Hi Rafeil, thanks for this feature. How do I Access Elmo from in rhino python. I could not find it on the API
Elmo in Rhino WIP continues as Rebuild. But the new functionality is not (yet) exposed.
RH-92690 Rebuild: expose new functionality in RhinoCommon








