Strand Collision Framework
Page 1 of 3

Author:  Roughy [ 24 Oct 2013, 02:04 ]
Post subject:  Strand Collision Framework

Was crashing in SI2015, and there's apparently at least one person who is crazy enough to rely on this mess.
Here is a fix for that. Also takes care of the unsupported type and constraint map errors perPointArray has been spitting out.
Replace the DLLs with the ones in the above zip and everything may work.

A number of custom ICE nodes and various compounds that allow for strand-to-strand collisions.

This is an old project I had originally dropped, largely because I didn't feel like starting over to fix all the issues with it. As such, everything is held together by duct tape.

What it can do: https://vimeo.com/groups/ice/videos/76018502
Download (Addon and example scenes): http://www.mayulive.com/StrandCollisionFramework.zip
Will likely require the VC++2012 redistributable: http://www.microsoft.com/en-us/download/details.aspx?id=30679

The most glaring issues are:

1. No shared data set, meaning that, internally, self-colliding strands are not aware of how other strands in the cloud are reacting. They are only updated with full iterations (repeat node in ICE), which gets very expensive. It's a hackjob that really shouldn't be working, but does. sort of.

2. Doubled-ended "Hooked" strands were never meant to be stretched, it just happens that they somewhat tolerate it. Do not expect stretching to work. Hell, don't expect hooked strands to work at all.

3. Stiffness has no weights, meaning colliding segments are moved just the same as other segments. This means that you will end up with a bump in your strand unless you increase the number of full iterations (repeat in ice).

4. Violent collisions require that we keep tight control over how strand length is corrected. However, very stiff strands require that we continuously correct the strand length in a manner that breaks this system. If you are going to have reasonably stiff strands colliding with geometry, "Use Current Length" /HAS/ to be disabled.

Verlet integration is terrible and should have been replaced. If you have a look into the Verlet integration compound (stolen from the original dynamics framework, along with a few other compounds), you will see a number of hacks implemented to counteract Perpetual Wobble Syndrome (PBS). Alas, there is no cure.

6. Friction simply pushes the strand back to where it was at the previous frame, hence it does not work when the target is moving. You generally always want some amount of friction though.

7. Weighing down strands (strandmass) was a last-minute feature that just happened to be implementable without doing anything fancy. Don't expect a lot from it.


This entire setup was made with SI2011 in mind. It does appear to be working in 2013/2014, though they both spit out an error claiming that one of the nodes is using an invalid constraint map. There is no such error in 2011, and the error remains even if all ports are given separate constraint maps. Everything works fine despite this error, so it can be ignored. Likewise, as 2011 does not have fun features like subframes, it is not set up to work with them.

Softimage will also complain that the 3Delight plugin is not installed on scene load. I just can't seem to remove it from the scene.

Usage should be largely self-explanatory, with the zip containing a number of example scenes.
The length Correction factor before collision takes place corresponds to the bidirectional length correction in the original strand dynamics framework. Think of it was a wobbliness factor.
A lot of the compounds have a Range input. These compounds are driven by various values, usually the collision force. We divide the input by the range value and clamp it between 0 and 1, so a range of 10 and an input value of 1 would give you 0.1, or a 10% effect. The lower the range the stronger the effect, with 0 disabling it completely.

While I'm reasonably sure there should be no more crash-inducing bugs, I might be inclined to fix any that occur. All other issues are features. Except maybe the addon file being broken.

Author:  gustavoeb [ 24 Oct 2013, 04:48 ]
Post subject:  Re: Strand Collision Framework

Hey Roughy it has been a long time since your first Vimeo post on this. I am very glad you eventually got to share it. Even though you warn us about the downsides, the videos show a lot of good stuff. Hopefully I'll have time to play with this sooner then later.

Best regards, and again thanks!

Author:  Pooby [ 24 Oct 2013, 10:34 ]
Post subject:  Re: Strand Collision Framework

hi Roughy,

You have made something wonderful, and the fact it works at all, is incredible, so 'duct tape job'' or not. It's a marvelous achievement.

Thanks so much for sharing it, and I also appreciate your expectation-managing, although I wouldn't put you in charge of your own marketing!

Author:  fabilabo [ 25 Oct 2013, 08:40 ]
Post subject:  Re: Strand Collision Framework

I've just tested scenes and i feel it's totally awsome !
Do you think its possible tu use it to simulate hairs ?

great job, and thanks

Author:  iamVFX [ 25 Oct 2013, 14:10 ]
Post subject:  Re: Strand Collision Framework

Roughy, you're a man! I remember used your per point array ice node before si 2012 came out, it was super usefull, I'll test this framework since the project I'm working on have to have such kind of interaction between the strands. Thank you for sharing it!

Author:  xsisupport [ 25 Oct 2013, 15:39 ]
Post subject:  Re: Strand Collision Framework

Roughy wrote:
Softimage will also complain that the 3Delight plugin is not installed on scene load. I just can't seem to remove it from the scene.

I think you have to merge into a new scene to get rid of that.

Author:  McNistor [ 25 Oct 2013, 18:20 ]
Post subject:  Re: Strand Collision Framework

This looks really good! Is it free and for commercial work?

Author:  sant0s [ 26 Oct 2013, 11:27 ]
Post subject:  Re: Strand Collision Framework

very nice work! thank you.

Author:  eternal art [ 26 Oct 2013, 12:10 ]
Post subject:  Re: Strand Collision Framework

Thank you very much for sharing this .

Author:  farhaad_yousefi [ 28 Oct 2013, 15:18 ]
Post subject:  Re: Strand Collision Framework


Page 1 of 3 All times are UTC + 1 hour [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group