Bug in Displacement plugin with Rhino 7

Hi. I’ve not reported bugs with Rhino before, so I don’t know if this is the correct venue. But I found an issue with a particular plugin–Displacement (Version: Oct 9 2022 13:48:37)–that ships with Rhino 7 and I can reproduce the problematic behavior on two different PCs running Windows 10.

As far as I can tell, with this plugin active and curves (whether inside or outside Block objects) in my open model set in the Properties panel to show Curve Piping, I will quickly begin to see significant performance issues (in other words, Rhino hangs and does nothing for a minute or more, or even sometime simply locks up entirely until I use Windows to force it to quit) when:

  • Pasting (CTRL+V) copied objects into the current model
  • when starting the BlockEdit command
  • when attempting to end a BlockEdit operation
  • when changing from the Wireframe display mode to Shaded or other display modes.
  • when opening a Rhino model, even a relatively small one, that has some curve in it with Curve Piping applied

Unchecking the plugin in the Plugin Manager, closing Rhino, and restarting Rhino causes the issue to disappear, though of course I lose the functionality of the plugin (in this case, the assigned “Curve Piping”).

The issue does not occur, needless to say, if I force Rhino to open in Safe Mode with this plugin deactivated.

The issue is most irritating during Copy/Paste operations or BlockEdit. The degree of a slow-down (or likelihood of a complete hang-up of Rhino) seems related to the number of curves in the model with Curve Piping applied, but once it begins to appear the issue doesn’t seem to ever go away entirely (especially with slow Paste functionality) even if all Curve Piping is deactivated for all curves in the model. If I save a model that was showing the issue with the Save plugin data option unchecked, when I next open the model I will not see the slow-down/hanging issues, though of course I will have lost any Curve Piping attributes previously assigned to curves in that model.

I actually really like Curve Piping, as I use it to evaluate complex metal tube assemblies and arrangements of structural cables without having to constantly create extrusions or use the Pipe command, so this is becoming a serious work issue for me.

Thanks for your time. I’ve attached a screencap of the Plugin manager as well as a copy of my system information from the Help menu.

Rhino system profile.txt (2.0 KB)

Hi Lewis -

I can’t reproduce the behavior that you describe when I start a new model, draw a few curves, and then step through the list of actions that you provided. Could you post a file that we can check?

Yes, of course. Here’s the file I used when I went through the Plugin Manager (as well as the Package Manager) systematically turning plugins off and restarting until the issue stopped.

This is a study for a tubular sculpture/ fixture, with lots of curves having Curve Piping. To test the slow/hang issue, I would Copy (CTRL+C) a surface or an individual curve, and then Paste (CTRL+V) it back into the model.

Incidentally, when I opened the model a moment ago to make sure I was sending you the correct example, it took so long for Rhino to show anything other than a blank black screen (In Shaded Display Mode) that I thought it might not open. The Command Line indicated, “Creating meshes…press Escape to cancel.”

Also, I’ve only begun to notice this issue recently, in the last month or so. Something must have changed (not my computers, though) since I started working on this earlier in the year.

cmp ksp 002.3dm (11.1 MB)

Always the same Rhino version, or do you mean that Rhino was updated during the period this was happening?

I mean that Rhino 7 updated, actually several times since I started this project.

Hi Lewis - when curve piping is on this requires generating meshes - that is what the ‘piped’ display of curves is. My guess is that the hundreds of curves here takes some churn to mesh, for one thing. This might account for the slow vireeports on open but not, I would think, the excessive delay in Paste, which I see as well, I’ll see if the developers have some input on that.
All that said, if or when you are at a point where the shapes of the piped curves are set, it may pay to ExtractPipedCurve and then Join the resulting meshes to consolidate these as much as possible, then turn off curve piping altogether on the curves.

The delay on Paste seems to be completely gone in the V8/WIP.


Thanks, Pascal! I am already in the habit of using the ExtractPipedCurve function once I have a satisfactory “tube assembly”, just to keep models manageable.

I did notice today that when I had converted all of that piped curve from that file previously uploaded into mesh objects, the Paste delay seemed to essentially go away for that particular model.