Having trouble matching up objects. Is this a job for IK

Can’t seem to get (Orient:3D) or (Rotate3D) to work. Which is making matching up objects tedious.
Basically I am trying to get the bottom (horizontal) triangle to move to and match the orient of the other triangle.
cant match up triangels.3dm (34.8 KB)

It is indeed unfortunate that Bongo doesn’t support Rotate3D nor Orient – definitely something for the wishlist, Andy.

I don’t think IK is an option. In the attached model are 2 solutions in as many Animation Sets. I moved the pivot to a corner of the moving triangle.

Plan 1 imitates the action assumed to be the result of an animated Orient command. First I animated a ‘move’ of the corner to coincide with the corner of the 2nd triangle, and a Rotation in Top view (Z-axis) to align both triangle’s bases in a vertical plane. At this stage (see animation set Plan 1 fase 1) I measured the angle between the triangle’s bases (Angle command) – the ‘Distance display precision’ in Rhino’s Options was set to his maximum for the most accurate result. Finally this result was used as an input for the Rotate X attribute (KeyframeEditor or Timeline input box).
Of course it was a windfall that the moving triangle was horizontal to start with. If not, a rotation of the Top View’s Construction plane would have been needed.
Plan 2 is more unorthodox, making advantage of the powers of Simple Constraints. It offers more flexibility in case the orientation of the goal triangle is modified.
cant match up triangels 001.3dm (59.8 KB)

Yes, they would definitely be on the wish list, as well as being able to Make pivot snappable, this would make the process easier to.
I have also thought of another way, Morph only seems to register in the timeline when using a square right?, so perhaps morph a square and then cut the square in half with a transparency map.
I’ve also noticed that the timeline ticks don’t register when using Box edit or Solid points on for when using solids.

I don’t understand what you mean by snappable pivots. ObjectSnaps function perfectly when a pivot is moved or rotated (BongoMovePivot and BongoRotatePivot command).

Morphing doesn’t work on ‘trimmed’ surfaces. Most polygons (except rectangles) are trimmed surface – as you can see in the Detailed object description in the Properties window. When you want a morph-able triangle you have to draw the outline composed of 3 separate lines (not 1 polyline), then select them and execute the EdgeSrf command.
You can tell the difference by the configuration of the isocurves. Samples to be found in the attached model.

Triangles.3dm (34.7 KB)
Morphing of trimmed surface must score high priority on the wish-list!

I don’t see how morphing can solve your initial problem though – or did I misinterpret your puzzle? Morphing alters the shape of an object (line, polyline or untrimmed surface). I isn’t fit to modify its position or rotation.

When an object has Points On switched on, only the control points can be animated, hence evoking Morphing. Since Morphing can be applied only to single surfaces (not to polysurfaces – which most solids are) Bongo will not register keyframes for solids control points.

I can see how that didn’t make sense, sorry.
What I meant was being able to snap to the ends of the pivot arms buy those little arrows that point to the X,Yand Z,
So say if your Y axis is pointing off in some random point in space, you could snap to the end of it, and then rotate or whatever.That would in turn perhaps solve some of the not being able to (3D Rotate).

That’s good to know about the trimmed surface’s and the the polysurfaces thank you, If I want to morph a box in the future i’ll simply use six single surfaces.

What I am trying to do is find the best way to animate this model, basically its an origami of three triangle’s folding up and then back down, then I would like to perhaps polar array them 16 times (8 of the times being mirrored) to make an octagon, that folds up and downanimate folding.3dm (970.7 KB)

Wow. This might be an interesting challenge for IK after all. I’ll give it some thought – I’m a bit occupied at the moment.

Last night, looking at your ‘folding’ model, I suddenly grasped your perception of snappable pivot and 3D-Rotation. It all came together.

Behold: Bongo has it all.

Firstly you don’t have to be satisfied with the position and orientation Bongo automatically assigns when an object is initially animated. You can use the BongoMovePivot and BongoRotatePivot command to reposition and reorient the pivot. The commands can be typed in the command line, or you can use the buttons at the top in Bongo’s Object Properties window.

Naturally, as I mentioned before, Rhino’s Osnaps can be deployed.

Secondly there is the notion ‘Rotate in Object space’ versus ‘Rotate in World space’.
When the orientation of the pivot of an object is modified, it differs from the orientation of the World coordinates – commonly called ‘World space’ – which are indicated by the World axis icon in the lower left corner of each Rhino Viewports and by the Grid axes. The ‘space’ (origin and orientation) defined by the object’s pivot is often referred to as ‘Object space’.
In the ‘Object Settings’ section of Bongo in the Object Properties window you will find the option ‘Rotate in world space’, which is enabled by default.

Now it becomes interesting… when you unmark this option, the object will apply rotational animation data around its own pivot axis - it rotates in Object space. Hence when the Object’s space is different from World space you get the sort of 3D rotation I think you were looking for.

A demo. Object space.3dm (68.8 KB)
Experiment with the ‘Rotate in world space’ setting and you can see how the objects behave accordingly.

PS Also when you use Rhino’s Rotate or Rotate3D command on an object which has already an animation pivot assigned to, the pivot is rotated along – hence redefining his private ‘Object space’.
PPS Your folding model is a mindbender, but I have a positive premonition. I’ll get back.

Yes I found my self moving and rotating the pivots many times when trying to animate the origami model,
I think that’s actually where the idea of (snappable or click-able pivot ends) came from,

for example, in this new model(how to align X axis to the red line.3dm (44.9 KB)), if I found my self in the position where I wanted to rotate the triangle on that red line, then firstly I would need to rotate the pivot so that the X axis aligned with the red line, this is where the problem starts, the X axis is pointing of in to space and I can’t click on it to find out what angle its at,

Ahhh I think I just sorted it out, One could just orient3D a square to the triangle to use as a 90degree square edge, thus allowing you to click on to the correct position of the X axis.

As im new to bongo I couldn’t figure out how to use the IK properly when trying to animate the origami model, but now that I have worked out the proper trajectory of the triangles( that’s what all the circles are for, although I guess you figured that)
I am hoping that the lines that lineup all the corners of the triangles (trajectory lines) will be able to be used as IKconstraint paths or something like that.

I’ll have to come back to this too, I have a dissertation hand in on Friday so i’ll have to keep my head down till then.

I had a gut feeling and it came true. A very interesting IK-puzzle. I did enjoy.
A (partial) model: folding.3dm (366.8 KB)
and some comment: folding.pdf (358.3 KB)

Working on the model I think I came across your ‘pivot match up problem’. Indeed it seems quite impossible, using the BongoRotatePivot command, to orient the pivot of an object to a specific non orthogonal direction in space– at least that’s what I think you are trying to do: revolve a pivot with respect to the (slant) object it belongs to.
But, do not fear: the BongoMovePivot command has an option 3point. The help file explains:
Pick a location, a point on the x-axis, and a point on the y-axis to establish the new base and orientation for the pivot.
Obviously object snaps or other modeling aids can be applied. When the orientation of Y axis is irrelevant just click anywhere.

A somewhat strange place to look for 3D rotating, I admit. It might be logic to implement a similar 2point option in the BongoRotatePivot command.
A bit poor in the UserInterface department, I hear you say. Rhino’s CPlane_3Point at least visualizes the axes (although it takes some training to see what’s happening).
And/or it might be useful to add an (Orient) option to both BongoRotatePivot and BongoMovePivot command (or to make a specific BongoOrientPivot command) which works similar to Bongo’s Orient command. Reference point 1 is automatically the pivot’s origin (default position, if there is no pivot). While picking Reference point 2 - in this case the only one - an (X, Y, Z) option can allow to select a desired axis. Such a Orient option/command would come in very handy to align one of the pivot’s axes (the orientation of the others not being relevant) with a line object or the edge of a surface or polysurface.
I hope the Bongo team is reading along.

Did you mean Rhino’s Orient command?

Slip of the tongue. Indeed, I meant Rhino’s Orient.

Sorry for the late reply Luc, I’ve been busy.

I’ll take some time tonight and tomorrow to study the folding pdf ,3dm & The basic way of IK.

I triedmorphed set of triangels works well but your right they cant be polararryed.3dm (1.1 MB) to morph the triangles along the trajectory lines and it works well but your right in that it cant seem to be Polar Arrayed.

I’d previously played around with the static stages of the origami in Panellingtools ( see image below ), the hole idea is for a project in Transparency, translucency & opaque, a naturally reactive 3d morphology fabric skin etc…,

So im trying to use paraffin wax in its liquid(transparent) and solid(translucent) state as well as its thermal expansion to drive the motion of the origami.


Your morphed set is state of the art. It’s indeed unfortunate that animation data of morphed objects is only repositioned when they’re being moved but not when being copied or rotated. Hopefully morphing will be enhanced extensively in Bongo 3. It is obvious you invested quite some time in defining the trajectories of the vertexes (probably to build the static model) and animating the morphing must have been quite laborious. Surely Bongo’s software must be able to do (some of) that work for you.

The morphing model (and the illustration of your project – presumably related to your PgDip?) gave me a better sight on what you ‘origami’ is about. Relying on your initial model ‘animate folding.3dm’ I misinterpreted the basic setup of the movement. The system folds upwards somewhat like a mini umbrella, instead of being pulled down – quite enchanting! The paraffin wax part goes beyond my comprehension though. The model also made me reconsider a reflection I made earlier, namely: will working with the edges of the triangles (and lofting the surfaces) guaranty the exact shape of the triangles? It made me realize that the scaling of the octagon – I mentioned in the explanation – wasn’t arbitrary but compulsory to make the folding come mathematically true. Examination of my folding model indeed learns that the length of the edges of the triangles formed in between the IK-chains (edge 1 and edge 2) isn’t constant.

So back to the drawing board.
Here is the result: folding.2.3dm (300.7 KB) Folding.2.pdf (244.5 KB)

I like the new IK-structure because it is straightforward, and more elegant than my previous attempt.
Remains the huge setback of rehoming every single element of a chain when it is copied.
The illustration of your static versions shows more than thousand origami’s! I hold my breath. One single origami has 96 link-chained elements!
Blocking isn’t an option (chains are broken). Importing from a separate file isn’t an option (children are pulled back to their birth parents).
Again; this project cries out for a BongoCopyChain command. Let’s hope Marika has a way out for you.
PS Merry Christmas

1 Like

Oh WOW!! Luc, this is amazing!!! A very elegant IK indeed.

Yes morphing the Triangles was very laborious, I had completed one full octagon, which meant having to move about 720 points, I had even managed to copy the complete morphed octagon (some how with proxy point I think )copyed morphed version.3dm (4.6 MB) , but upon trying to copy again to have three, was unable to do so (very frustrating) only one triangle would follow the proxy point? it seemed to make the animation very slow too.

Ok this is great, The IK is very easy to replicate and I fully understand the needs of a BongoCopyChain command now, I’ll sit down for an evening and make about five of the origami’s then start animating!

After reading your texts The Basic Why’s of IK and your very generous pdf’s While trying to understand your IK solutions, I’ve learnt allot,
Thank you so much for helping, your a great teacher!
I’ll keep you informed with the progress.


And yes I also agree that the 3point option to orient the pivot (thank you for finding that for me) should perhaps also be an option in Rotatepivot.

Although it would be doing the same thing, it would be that much easier to find for beginners,


More than happy to be of assistance. Once a teacher, always a teacher!
And yes, please, keep me informed.
Happy Holidays.

I’ve put a little compilation of images and animations together.
The animations at the start whir my first attempts at IK ( but they are accompanied with alot of Keyframes, You can see where the triangles don’t meet up properly and the light shines through), the animation at the end is the one with correct IK applied :smiley: Sequence 01.mp4 (14.2 MB)

Unfortunately I have given up after completing just one of the origami’s, I have to many other things to do at the moment. BongoCopyChain command need.

I’ll have to correct myself for miss-leading about the image in one of my previous posts, That image was made using VrayProxy and not Panellingtools sorry.

Here’s one of the images using Panellingtools.