Animation issue with GH geometry

Hi All,
I’m trying to create an animation with bongo, the scene has some animated points that control a GH geometry. The problem is that when you render the animation, no matter what renderer you use, Bongo doesn’t wait for the geometry update, so all the frames look the same. If you render using the viewport display you can see the moving points and structure, but not the final geometry. I may do a stop motion movie and render one by one… but I imagine that there might be a better solution for this.
Is there any option to set a delay time in Bongo? @marika_almgren Or a scrip? @pascal
By the way my idea is render with V-Ray Next @Peter.Chaushev
If anyone wants to take a look the 3dm+gh are attached.
You will need fatten and Weaverbird plugins
https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/b/1/b147df0ec3a404ca5a34c522a0f9f13ee5b6cf02.mp4

Rhino_Bongo_GH.rar (517.4 KB)

Hi all,

@laborda’s example here is a very simple one, but we are trying to use this workflow in much more complex lattices for shoe soles. So the slowdown are even greater.

Also, ‘fattener’ is now a component in GH, so I think only plugin needed is Weavenbird.

G

Hi McNeel team,

We really need your help here.We keep struggling with this. Bongo not supporting Grasshopper is really a major problem. We did not anticipate this level of incompatibility between your own products. It’s understandable since we are (like always) trying to do things that are not done by most people (yet), but now we are in a pickle to try to document our work.

Let me explain:

We have some surfaces and curves (control points) animations in Bongo. They are being referenced and generating geometry in Grasshopper, and as these animation moves the points, we want to show the Grasshopper geometry results also updating accordingly.

We can’t do it. Not in Bongo. Not in Vray. We can manually move the animation timeline frame by frame and render each still frame and manually name it and save it. But we have a lot of these to do, and a lot of frames per concepts.

This is the help that would save us for now: a magic script.

  • run script
  • Ask user “how much time do we wait between frames?” dialogue box (numbers equal seconds). This gets asked only once, at the beginning of rendering the animation.
  • Go to Bongo’s first frame, wait for those [user-input number of] seconds
  • Render (does Rhino know when a Vray rendering is done? )
  • SaveRenderWindowAs (prompt folder location)
  • Save frame names 0000.png
  • Go to Bongo’s NEXT frame, wait for those [user-input number of] seconds
  • SaveRenderWindowAs
  • Save frame names 0001.png
    …continue until all timeline is rendered and saved as .png frames.

Any chance this could be done? pleeeease?

cc. @pascal, @nathanletwory

We’ll share the results once we are done. It’s exciting stuff, I promise.

Thanks!

Gustavo

1 Like

Hi Gustavo - I suspect overall your plea should go by @andy at least, but for now, just pretending there is a way to script something that is somnehow within my bailiwick,

what do you mean here - is this to allow the rendering to get done, or the amount of time to shift on the timeline?

-Pascal

Hi @pascal, (@andy!), the wait is before invoking the render command.

If we manually (or by moving in the bongo timeline) we move control points, the Rhino geometry updates immediately. But there’s a shit-ton of Grasshopper geometry that needs to be regenerated and that takes about 30 seconds or so to update. So we need Grasshopper to catch up to the geometry update before we hit render.

What if you have Grasshopper kick off the render, since GH seems to be what you need to wait for?

// Rolf

Hi Rolf, the problem is that we have the referenced geometry animated in Rhino. So Grasshopper cannot load each keyframe position of those Rhino control points. At least we do not know a way to do that.

Also we are seeing tons of limitations with Grasshoper animation, we can only save states of slides, but not of what is plugged to what. I wish there was a full save/restore or all values in a definition.

I can feel your pain.

To me it’s unbelievable that we (still) cannot hook into Bongo via some basic .net API. Perhaps there’s some C or C++ API somewhere which would provide a glitch where to sneak in? If so, I’d be very interested to know.

// Rolf

Hi Rolf - There is this -

-Pascal

1 Like

Well our pain is because we are terrible customers for this team. We are trying to do a lot with these tools: Rhino + Grasshopper + Bongo + 3rd. party renderers… so yeah we are frequently hotting a wall, at least temporarily, until we get help with workarounds, scripts, updates, etc.

Let me share another pain point we reached also this week (different client/project): we needed to animate a very complex articulation mechanism, since we are designing around it. We knew we wanted to model ‘chunks’, then see how the fit/look/collide? in the different articulated positions.

Our struggle: Do we set this rig up in Modo or in Bongo?

  • Modo will let us model our stuff in SubD very easily, and in animated/re-positioned states.
  • Bongo being in Rhino will deal better with accuracy, snapping, section views, or anything else we need to solve this.

We went for Bongo, it works great! …and now we need to do some more soft-goods design parts (fabrics) and we need Modo level of modeling. Well guess what? we cannot export the bongo rig as .FBX, so we need to do all the animation setup over :see_no_evil: this is nuts!

I actually don’t think so. I’ve been following your rants for some while, but if is is being viewed as “pushing the product forward” (at least some of it…:wink: ) its actually very valuable. At least this is how I have (tried) to view the most “difficult” customers in industry and in the software projects I’ve been responsible for.

Since long I’ve imagined an enormous potential in the combo Rhino + Grasshopper + Bongo, but I have not seen much indication of that these three pearls would be integrated for convenient use (for “normal” end users).

In any case, it seems any form of serious integrated solutions should Start from Grasshopper, which then would control Rhino and, in turn, Bongo or any other plugins.

I hope to have some time to look into the Bongo SDK (thank you for the hint @pascal) to see what I can achieve with the cresent moon plus plus language its written in (not my native language), but I imagine that, whatever functionality you would like to control in order to gain the desired sync with GH, should be based on the following:

  • Make a BongoPlugin with the desired function (like, advancing a tick), and install it in Rhino
  • From Grasshopper you call that function with C#.

In your case I’m not sure if that would actually work (in your current setup) since triggering a Bongo plugin exposing to GH the functionality to advance a keyframe (after the GH stuff is done calculating its thing) perhaps would only become a infinite loop. I suppose.

So therefore I wonder, do you start the processing you have problem with from Bongo or from Grasshopper?

// Rolf

I want to give my vision here after using Rhino since it fit on a diskette.
There might not be another company like Mcneel that gets in touch with users, listen to them and propose great solutions, this make advanced users and enthusiast feel almost like developers, but most of us don’t know how to code, just have an idea of what tools can do and what we need from the software to get the job done.
The biggest issue I find is that this constant evolution tends to give as products that are not fully tested and compatible with other plugins. I’ve been beta tester of V-Ray, T-Splines and VSR, and what I learned is that it’s safer working with Rhino’s core tools rather than using 3rd party plugins, because you never know what could happen in the future that can ruin your best pipeline.

BUT in this case we are trying to use 3 products that should work like a perfect team.
I’d prefer waiting for the development but once released they should work like a single program fully compatible.

3 Likes

Hi @pascal, @andy, @nathanletwory,

would it be easier to have a version of this that works at least with the RHino viewport and Viewcapture to file?

something like:

  • run script
  • Ask user “how much time do we wait between frames?” dialogue box (numbers equal seconds). This gets asked only once, at the beginning of rendering the animation.
  • Go to Bongo’s first frame, wait for those [user-input number of] seconds
  • ViewCaptureToFile (at 3840x2160)
  • Save frame names 0000.png
  • Go to Bongo’s NEXT frame, wait for those [user-input number of] seconds
  • SaveRenderWindowAs
  • Save frame names 0001.png
    …continue until all timeline is rendered and saved as .png frames.

We would like to do output this work for a presentation without having to do manually advance and name each frame (there are a few thousand of them).

Thanks!

G

We can look into this after Easter (that is, next Tuesday).

2 Likes

Thanks Nathan. Happy Easter!:hatching_chick::rabbit::rabbit2:

1 Like

Hi @nathanletwory, did you have time for our request?

Briefly looked into it, but not solved yet. I think I might try a simple/quick wrapper around the bongo c++ sdk to do a very basic command or so that would step through the bongo animation, wait the requested time, then do a ViewCaptureToFile outside the bongo render animation loop (bongo essentially does a ViewCaptureToFile for each frame)

Very cool Nathan. Im also wondering is there is a way to check with Grasshopper and know if it’s done computing or not? Because ultimately what we need is knowing that Grasshopper has finished doing its thing, the time input is just a hack around that need.

My plan was actually to do that advancing of the bongo anim and viewcapturing from GH, but we’ll see how far I get.

I had to ask @lars some questions regarding the Bongo SDK :slight_smile:

3 Likes

I don’t have all the plug-ins, nor do I have V-Ray, so I’m using a simplified version of the test file.

I’m making some progress, here a screencap and a short video:

gh_bongo_integration_001

More next week!

2 Likes