generative modeling for Rhino
This is a simple example of a mechanism something like a callback to monitor user input... Sometimes, I would like to disable slow/time-consuming portions of my definition while tweaking parameters. I know this can be done manually. This small def shows one way of doing it somewhat automatically... at least for a graphmapper. I would love to see how others handle something like this.
HI David, sorry to trouble you but I cant seem to identify the third component in your video (AB, AB),
it's the one I just wrote in response to this discussion. It won't be publicly available until the next build is released. It also doesn't (didn't) have an icon yet, which is why the default icon is shown.
early bird gets the dam. Are you really going to call it the beaver buffer?
Could it be a document option ? (compute real time or not)
Would it be possible to create the equivalent of layer states? It would remember which components are previewed, unpreviewed, enabled, and disabled. If new objects are added to the canvas they would be excluded from the state manager, and if ones are deleted they just stay deleted.
Not sure if this is possible, but would be cool.
Jonah - this is really clever. Would be awesome to find a way to adapt it to work with any input object, rather than just the graph mapper. I tried myself but didn't get anywhere.
David - I especially like #2 and #4. #1 doesn't seem to do a whole lot that simply disabling an upstream component wouldn't, and #3 would be a pain for sloppy users like me who aren't so careful about the left-to-right thing.
I like Hannes's suggestion of a timed lock, which only passes the data fed into it when it's not changing (within some specified time interval). This would allow precisely the kind of functionality Jonah's solution enables, but without the complexity or dependence on the graph mapper.
In fact a time lock mechanism could also be added to a DataDam. It could operate in 3 modes:
Where  is simply  with an infinite timeout. It's probably not too hard to write this, I should be able to add such an object in an hour or so.
I thought that my original solution #3 would be interesting for teaching purposes, where the instructor might want to show step by step how a file works. But I'm too busy to start working on this for the next release.
Thanks for the compliments.
I like all of the ideas here but especially the last #3. It functions somewhat like a callback;
on parameter change do( )
or more appropriately,
on parameter change don't( )
Using a timer to compare values was my next thought. But I would think it would have to update fast in order for it to catch a change before the solution down stream begins to solve?