Many thanks it appears nicely simple at first sight, at least the construction tree is.
Yes, most of our setups were pretty straightforward. We approached the complex stuff like the shoe with multiple pointclouds, each which had a simple setup like this to cover a single part of the model. I think the most detailed shot had about 17 LKFabric pointclouds, each one animating a small section of the shoe to create the overall illusion.
There is also a set of nice compounds for making single threads form down curves, it's very effective and easy to use. We used that for the "fly wires" which act kind of like a skeleton inside these shoes. The shoes are incredibly complex in RL and made up of several layers of different types of cloth. For a while I was worried we would have to do all the internal layers, which was worrying since we only had 3 weeks and only 3 of us knew ICE, plus of course Leonard who was busy coding away.
I don't see any "thread count" input in LKF core, is this the "Number of Thread Curves" or the "Thread Repetition Length"?
It would be the "number of thread curves." Sorry, some of the names have changed over time. The "thread repetition length" is how many times the shapes of the thread input curves are repeated down the length of a thread, the smaller the number the more "twisted" the look (and the more strand points used, more memory etc)
There is also a drop down menu: Full mode, Simple mode, etc but i didn't saw any noticeable difference in performance between those first 2. I ended up tweaking the LKF Surface creator parameters to get speed.
That's valid. The behavior of the "mode" drop down changed several times and I forget how it ended up, this changed since we used it. The idea is to be able to turn off the "threads" behavior and just see a single strand for each thread. Kind of a "level of detail" control. But it also was used to handle an inner "shadow core" strand which is used for a rendering trick I won't get into here and some other things, and I'm not sure just hat it does now. We should ask Leonard to do a walk thru video sometime (I know he wanted to, he's just been super-busy lately.)
You will also see a lot of repetition of values, for instance you can change the strand and thread widths in several places... This is intentional but the differences are subtle except in certain circumstances. When Leonard was making this tool for production use we asked him to expose more than you typically would for a commercial tool - we wanted power over ease of use. I think in future versions LK is likely to hide some of this stuff away.
What is the sideways and backwards moving pattern?
Some patterns need pattern curves which loop back on themselves. An example would be a knit pattern, which is shaped kind of like the Greek symbol "omega." But looping backwards takes a little more horsepower and we had scenes with many millions of strands so we needed a switch... This is one of those things which can probably be hidden away and left on the slower-but-more-flexible "backwards" setting.
It seems with way it is constructed it can't start irregularly in middle of the grid and spread in UV positive and negative directions from there unless some modification and also start at several places.
Yes that's true. When we had areas like that we would make two separate surfaces and ice trees, one for each direction of travel. You can also do a cheat, which we had in mind but never had to do:
There was a possibility that we might want to use an animated vertex map (a weightmap or texture map) in ICE to make a kind of organic growth, where a noise/turbulent pattern grew over time... The solution is to make the fabric but not animate it directly... Instead use the map to set the strand scale. Where the map is zero, the strand scale is zero and the strand appears invisible, as if it was cut. Where the map is 1, the strand scale is normal. This way you can have the strands grow without limitation.
We had this idea in the back of our heads but avoided it because there would be other issues to solve if we did it this way, most importantly you can't easily see the results in your viewport... With constant changes happening we didn't want to have to get stuck rendering just to see what we were doing, nor did we have the time to develop solutions just for visualization: it was easier to deal with the limitations of 4-sided surfaces but actually be able to see pretty clearly exactly what each strand was doing.