“Outer design of an engineering project is usually done by artists, not engineers”
Well on the Mexico airport it was used as an integral part of the design of the structure (for this multi-billion pound and very real project). The catenary form-finding process in Kangaroo was used to create a vaulted structure which acts more in compression with less bending (through a simulation of something similar to the type of physical hanging chain modelling process used by Gaudi).
You can also see some of the 40+ citations here for Kangaroo: https://www.researchgate.net/publication/260745327_Kangaroo_Form_Finding_with_Computational_Physics
many of which are by real professional engineers using it in structural design and research, including numerous built projects, and not just for ‘artistic exteriors’. (There are many more, but these are just the ones that reference that specific publication).
As I described in my earlier post – the strength parameter can be related in a precise numerical way to the Young’s modulus in accordance with Hooke’s law and give quantitatively meaningful results.
“the idea is obvious”
In your gif I see a blue and orange blob moving off another blue and orange blob. I can’t debug that.
“Simulation of anchor having 3 parts and a chain, being lowered and hoisted with collision and the act of gravity force. As you stated above Kangaroo is not able to handle that properly yet.”
I didn’t say that – I don’t know whether what you want is possible in Kangaroo because I still don’t know what you want to do, because you haven’t explained it. It sounds fairly simple and quite doable, and if Kangaroo is failing I’d like to know how, so I can improve it. If it is confidential you can send me the file privately, or extract the relevant parts and post them.
You say placing two forces on a rigid object is not resulting in a balanced system. This is either an error in the way your definition is set up, or it is some bug I am not yet aware of (since in my tests this does behave correctly). Since you don’t provide any details I cannot tell you how to fix your definition or fix any possible bug in Kangaroo.
“Static equilibrium has nothing to do with simulation”
Maybe something is being lost in translation here – I think any engineer would agree that simulating deformations under load to find a static equilibrium(as well as intermediate steps towards this) is absolutely one type of simulation.
Again – any ‘physics engine’ simulates some subset of real world physics. Many game and animation physics engines only deal with the very limited case of rigid body dynamics and collisions – which is itself a big abstraction of real behaviour, since it does not make any attempt to take into account the deformation which always occurs in all physical systems.
These engines also typically do not make any attempt to give quantitatively accurate elastic behaviour, which Kangaroo does(for specific applications).
I’d also point out that this is possible with just standard Kangaroo by setting input parameters correctly, while the K2Engineering add on Anders mentioned makes setting the interface for setting these parameters more engineer friendly and adds further output display options, you can also get quantitatively meaningful results using Kangaroo without it.
As for the ‘pseudo dynamics’ mention in the page about dynamic relaxation – this is a relevant point. In fact the key difference here is just the type of damping used. For DR, where we are only after the equilibrium, typically either kinetic damping is used(which does not mimic any real world damping), or viscous damping(which does loosely approximate the type of damping which happens in the real world due to friction). With viscous damping though, usually the parameter is chosen to be as close as possible to critical damping, to reduce oscillations.
However, if you set this value differently(ie the Damping parameter in the ‘BouncySolver’ component of Kangaroo), then you can choose it to mimic real world behaviour more closely. In fact, when setting the damping in this way, the standard form of DR and what is often referred to as ‘Verlet physics’ (after Verlet’s integration method), which has been used in many popular physics engines, turn out to be essentially identical. It was seeing this connection that was one of initial inspirations for Kangaroo.
Now you’ll notice that I’ve always been careful to avoid calling Kangaroo ‘real-time physics’, instead referring to it from the very first demo as ‘live physics’, since the rate of iteration is dependent on CPU speed and the size of the system being simulated. The aim was to have something that is responsive and interactive in a way where the user can get rapid feedback and make use of physical intuition, not necessarily matching real world rates of movement in a precise second-to-second scale.
Making iterations correspond to precise time intervals in Kangaroo would probably be possible without any huge changes(so you could generate animations with an accurate time scale), since it is based on physical laws, and even adjusting this for CPU speed for real time display might be possible for moderately sized simulations. It’s not something I’ve spent a lot of time working on recently though, because it’s not something many people have asked for, since most people have been using it for other applications where this isn’t an issue.
You say you ‘wasted hundreds of hours’ trying to solve your task – that’s a real shame, and I’m sorry about your frustration, but I think you might have asked a specific question on here sooner?
This discussion, while interesting, has become rather broad, whereas with a bit more clarity we might have narrowed down to what it sounds like was maybe one specific issue with rigid body collision, and I could have either fixed the issue in your definition, or some relevant bug in Kangaroo, or indeed directed you towards some other software if that turned out to be more suitable.