We will be out of office from December 23th to January 7th. During this time we'll check the forums less often, we'll be back at full throttle soon. Take care, Merry Christmas!
Hello - just getting started with obi rope, we used obi fluid for a training simulation (epoxy application simulation) and it was just great so thought we'd give the ropes a try for a cable simulation. We need to simulate 32+ individual cables, sort of like those attached.
What approaches would you suggest? Some details:
We don't need collisions, tearing, stretching or anything like that, simply bending (& maybe twisting, TBD)
The cable visual could be fakes somehow, we don't actually need each cable in the above shots to be a separate obi rope object
We only care about this running on Win10 (RTX 3090 + I9 @ 4k)
I'll update this thread if I think of other details but just wanted to get the question out there- thank you!
27-01-2022, 08:55 AM (This post was last modified: 27-01-2022, 08:55 AM by josemendez.)
(26-01-2022, 08:15 PM)billmccrary Wrote: We need to simulate 32+ individual cables, sort of like those attached.
The cable visual could be fakes somehow, we don't actually need each cable in the above shots to be a separate obi rope object
Hi!
Do they need to be truly individual (as it move independently) or is it just fine if they just look like individual cables, but move as a bundle? You mention you don't need each other to be an ObiRope, so I guess it's fine if they move as a whole?
(26-01-2022, 08:15 PM)billmccrary Wrote: We don't need collisions, tearing, stretching or anything like that, simply bending (& maybe twisting, TBD)
What to use depends on your need for twisting. Bones and rods can twist but ropes can't. If you can rig the cables up using a skeleton (just like you would for a character), a very simple approach would be to either use a ObiBone component (which will simulate each bone in the skeletal rig), or a single ObiRope/Rod and then manually copy particle positions/orientations over to your skeleton bones in case you want very detailed, hands-on control.
Both approaches are really, really cheap (and their cost is independent of the amount of individual cables in the bundle).
They can just look like individual cables and move as a whole bundle. The animations will be quite short, just a small bend or two, just needs to look real enough.
Twisting may be more of a nice-to-have, and would be in the minority. You mention having 1 rope/rod simulating and just copying the deltas to the bones that are acting as the bundles, I like that idea and was kind of what I was hoping was possible, good to hear.
Thanks for the initial direction, now I know where to start and will reply back here if I have more questions.
I am also trying to model a set of cables and connectors along with lanyards that are meant to pull off the connectors at a specified distance, the groups of connectors will be moving relative to each other and the cables etc reacting to that. When the connectors get pulled off due to lanyard reaching specified length it should react to gravity.
I am curious to learn about a better approach than what I have tried. I wanted to use rods for the cables since they need some stiffness like thicker wire, and then use ropes for the lanyards. I have started to make a blueprint for each cable since the lengths and other characteristics like thickness need to be tailored. I hope to use the same blueprints for the lanyards and then just offset those instances. The issue I am running into is it is difficult to get the control points in the right position/orientation without making a mess since these bundles are not right at the origin and not on a main coordinate axis so the global controls take a lot of manipulating to achieve the desired initial state (I think I'm missing a fundamental blueprint usage concept or something... seems like maybe I should be making my blueprint around the origin and then translating/rotating a parent transform to place that instance in the scene instead maybe? As it is I am putting the rope actor at the origin and then adjusting the control points to be in the specific location which is kinda far from the origin). You mentioned skeletons, so I think that I need to understand a totally different way to achieve what I'm doing. However, that's not the biggest problem I am encountering (but likely contributing?), I was able to get a cable modeled as rod to attach and solve for it's position well even with some motion (start and end connector groups moving relative to each other and end particles static attached) but when I attempt to enable the dynamic attachment and then enable the connector rigidbody that the rod is attached to at the top end to simulate that connector disconnecting and falling due to gravity I am struggling to contain the wild constraint battles that ensue. I would like some guidance on what approach you would take to setup this scenario. I have tried to use appropriate masses and make sure that particles are not conflicting with colliders, but still I think I'm doing plenty wrong and appreciate your advice!
18-02-2022, 09:28 AM (This post was last modified: 18-02-2022, 09:30 AM by josemendez.)
(17-02-2022, 10:22 PM)griswold Wrote: The issue I am running into is it is difficult to get the control points in the right position/orientation without making a mess since these bundles are not right at the origin and not on a main coordinate axis so the global controls take a lot of manipulating to achieve the desired initial state (I think I'm missing a fundamental blueprint usage concept or something... seems like maybe I should be making my blueprint around the origin and then translating/rotating a parent transform to place that instance in the scene instead maybe? As it is I am putting the rope actor at the origin and then adjusting the control points to be in the specific location which is kinda far from the origin).
Thank you,
Adam
Hi Adam,
Control points are expressed in the rope's local space. If you move a control point to the rope's local zero, and then move the rope around, the control point position and the rope position in world space will be the same (hope this makes sense!).
Latest Obi version (6.4) exposes numerical position and tangent fields for each control point, which means you can precisely place blueprint control points instead of eyeballing them or tweaking by hand (see: http://obi.virtualmethodstudio.com/forum...-3297.html). If this is not enough, maybe a writing a procedural placement system would be a better approach? This would allow you to set points programmatically.
(17-02-2022, 10:22 PM)griswold Wrote: You mentioned skeletons, so I think that I need to understand a totally different way to achieve what I'm doing.
I suggested Bill to use skeletons (or more generally, linear blend skinning) as a way to cheaply simulate and render a bunch of cables that are tightly bundled together. Since each individual cable won't have much impact on overall behavior of the whole bundle, it's simpler to approximate the entire thing as a very thick cable. I don't know if this would be beneficial in your case, as it depends on how "rogue" each cable can get.
(17-02-2022, 10:22 PM)griswold Wrote: However, that's not the biggest problem I am encountering (but likely contributing?), I was able to get a cable modeled as rod to attach and solve for it's position well even with some motion (start and end connector groups moving relative to each other and end particles static attached) but when I attempt to enable the dynamic attachment and then enable the connector rigidbody that the rod is attached to at the top end to simulate that connector disconnecting and falling due to gravity I am struggling to contain the wild constraint battles that ensue. I would like some guidance on what approach you would take to setup this scenario. I have tried to use appropriate masses and make sure that particles are not conflicting with colliders, but still I think I'm doing plenty wrong and appreciate your advice!
Constraint "battles" (if the behavior you're getting is really that) are always caused by constraints trying to enforce mutually incompatible conditions. When dealing with attachments this is almost always due to a particle that's attached inside a collider: the collider tries to push the particle outside, and the attachment tries to place it back inside. Filtering out collisions is the way to go in these cases.
If you could give more details about your setup I will be able to provide further guidance. let me know how can I help!
Control points are expressed in the rope's local space. If you move a control point to the rope's local zero, and then move the rope around, the control point position and the rope position in world space will be the same (hope this makes sense!).
Latest Obi version (6.4) exposes numerical position and tangent fields for each control point, which means you can precisely place blueprint control points instead of eyeballing them or tweaking by hand (see: http://obi.virtualmethodstudio.com/forum...-3297.html). If this is not enough, maybe a writing a procedural placement system would be a better approach? This would allow you to set points programmatically.
I suggested Bill to use skeletons (or more generally, linear blend skinning) as a way to cheaply simulate and render a bunch of cables that are tightly bundled together. Since each individual cable won't have much impact on overall behavior of the whole bundle, it's simpler to approximate the entire thing as a very thick cable. I don't know if this would be beneficial in your case, as it depends on how "rogue" each cable can get.
Constraint "battles" (if the behavior you're getting is really that) are always caused by constraints trying to enforce mutually incompatible conditions. When dealing with attachments this is almost always due to a particle that's attached inside a collider: the collider tries to push the particle outside, and the attachment tries to place it back inside. Filtering out collisions is the way to go in these cases.
If you could give more details about your setup I will be able to provide further guidance. let me know how can I help!
kind regards,
Hi Jose,
Thank you! yes that makes sense about the control points. I am trying to create an accurate to physics simulation, realtime is not a requirement but would be a bonus if possible. I attached a picture of the CAD model of the cables, lanyards, and connectors. The two groups of connector ends will be moving relative to each other and at a specified but variable distance the lanyards will pull off the connectors, the designers are interested in any re-contact between those disconnected connectors and any of the surrounding structure.
I have tried to model the cable as a simple rod, and attached the lower left end to the connector with a static particle attachment, and then used a dynamic particle attachment to the connector on the upper right. I am struggling to configure the rod/attachment because when that connector is detached (rigidbody isKinematic set to false) I am getting wild reactions from the rod. I have made sure that there is no conflict with the connector collider and the particle positions and used accurate widths for the rod and mass for the connector.
Thank you! yes that makes sense about the control points. I am trying to create an accurate to physics simulation, realtime is not a requirement but would be a bonus if possible. I attached a picture of the CAD model of the cables, lanyards, and connectors. The two groups of connector ends will be moving relative to each other and at a specified but variable distance the lanyards will pull off the connectors, the designers are interested in any re-contact between those disconnected connectors and any of the surrounding structure.
In this case, I wouldn't use the bundle/skeleton approach and just model each cable individually.
(22-02-2022, 07:10 PM)griswold Wrote: I have tried to model the cable as a simple rod, and attached the lower left end to the connector with a static particle attachment, and then used a dynamic particle attachment to the connector on the upper right. I am struggling to configure the rod/attachment because when that connector is detached (rigidbody isKinematic set to false) I am getting wild reactions from the rod. I have made sure that there is no conflict with the connector collider and the particle positions and used accurate widths for the rod and mass for the connector.
Could you share a short video (or even a gif) of the rod behavior when attached to a non kinematic connector? As long as there's no constraint conflicts, the only other possible reason for weird behavior is large mass ratios (the connector being much heavier than the rod or viceversa).
(23-02-2022, 09:37 AM)josemendez Wrote: In this case, I wouldn't use the bundle/skeleton approach and just model each cable individually.
Could you share a short video (or even a gif) of the rod behavior when attached to a non kinematic connector? As long as there's no constraint conflicts, the only other possible reason for weird behavior is large mass ratios (the connector being much heavier than the rod or viceversa).
kind regards,
Hi Jose,
I think I have narrowed down part of the issue is due to enabling the constraint orientation on the dynamic particle attachment. If I turn off that constraint then the rod behaves as it should but then the connector just dangles instead of keeping the cable in line with the connector which was my intention for using that constraint.
24-02-2022, 08:38 AM (This post was last modified: 24-02-2022, 08:50 AM by josemendez.)
Hi Bill,
It's the first time I see this kind of behavior. Constraining orientation shouldn't cause any issue, see for instance the spring rod sample scene which uses an attachment with constrained orientation. It's also weird that the rod doesn't react in any way to the rigidbody weight when you disable the constrain orientation checkbox. Only the connector seems to move at all. Would it be possible for me to take a look at the scene? You can share a minimal example to support(at)virtualmethodstudio.com
I also tried to reproduce this in a scene of my own to no avail, no matter how much I torture the rod the simulation stays stable. All parameters left to their default values, except for the amount of substeps (cranked up from 4 to 10, since with the default 4 the rod was too flabby to hold the weight of the box):
I did spot kinks in your rod, not sure if these might be desired but quite probably they aren't:
This happens when the orientation along the rod changes sign, and is usually caused by improper orientation vectors in the rod. These vectors determine twist along the rod, you can adjust them in the path editor: http://obi.virtualmethodstudio.com/manua...setup.html
Quote:Orientation tool (rods only):
This tool allows you to define the orientation of each control point. This lets you specify the rest twist of the rod.
Example of proper orientation vectors:
Example of improper orientation vectors (can immediately be identified: a 360º kink appears as the rod performs a full revolution around its longitudinal axis):