LK Fabric from Leonard Koch

Plugins linking to this thread: (hide)

LK FabricAuthor: Leonard Koch
A large toolset of over 50 nodes for creating/animating the creation of fabric down to the threads and even to the fiber level. introduction video.

[..] it supports motionblur, strand-texturing directly in ICE, fabric flowing over multiple surfaces and many more things. This tool has come out of a series of commercials for Nike, which I got to work on at Royale this summer. They have graciously allowed me to share this tool-set with the community. Major thanks for that! Big thanks also go to Billy Morrison, Ciaran Moloney, Steven Caron and Andy Moorer who provided pages and pages of feedback during production and then used the tools to create all the pretty images.

Andy did a nice write-up about the production on the Softimage-mailing-list
[..] (continue reading on the download page)

Watch these two spots on vimeo which are extensively featuring this plugin: Nike Tech Fleece / Nike Evolution.

New plugins, tools etc.
mihaiNL
Posts: 29
Joined: 26 Nov 2011, 18:32

Re: LK Fabric from Leonard Koch

Post by mihaiNL » 11 Oct 2013, 02:19

Huge thanks for this awesome tool! And very gracious of Royale to make it available :ymapplause:

If it weren't for guys like you creating all these tools and adding so much more value to SI, I too would share in the doom and gloom of its future. So a big thanks for that as well!

mihaiNL
Posts: 29
Joined: 26 Nov 2011, 18:32

Re: LK Fabric from Leonard Koch

Post by mihaiNL » 11 Oct 2013, 10:51

Maybe I'm doing something wrong but the second Pattern curve doesn't seem to do anything.

- I create the default setup on a grid surface
- I edit the points of the first curve and both the U and V directions of the thread changes appearance
- I edit the second curve and nothing happens

I noticed in the Core it says nr of Pattern Curves, and it's set to 1. If I set it to 2, I get a warning saying too few curves connected. Is it nr of pattern curves per U/V or in total?

Bullit
Moderator
Posts: 2621
Joined: 24 May 2012, 09:44

Re: LK Fabric from Leonard Koch

Post by Bullit » 12 Oct 2013, 14:51

I am trying it too. To make the it grow in diverse parts of the object and then they all magically join. But for now i am failing.

My setup idea was to add a "stop threads by volume" to "LKF core" stopper input , the volume is a box that scales up and since "stop threads by volume" is in outside volume mode then they only grow up inside the volume. So far so good. But i have 2 problems:

1 -It only works with what i think is the V not with U. So those that grow along the Swoosh never appear.
I noticed that if i put the box at the tip where they start then those in U also appear to respect the volume, but if i merge two boxes it appear in first box if this one is at tip but doesn't appear in second one.

2 -When i put two boxes to grow in 2 places it doesn't work either in U or V. Two "stop threads by volume" seem to not work concurrently. I tried either putting it in stoppers or in LKF hub manipulator.
There is a workaround that is to merge the boxes, but then i can't scale them up, i have to move points.

Another i had was just to fire particles to the swoosh and then these that hit will make a weighmap and then it will grow from the weightmap growing.

Matic
Posts: 70
Joined: 18 Jun 2009, 19:58

Re: LK Fabric from Leonard Koch

Post by Matic » 20 Oct 2013, 08:05

Hi gang, Andy Moorer here. I'll try to put together a sample scene based on the Nike commercials to give some insight into using lkFabric. It's a complex enough system that getting a feel for it takes some struggling at first.

Some general quick thoughts from using it on those two commercials...

- "Stoppers" were an early addition where we were planning on using them to cut out non-square shapes like clothing patterns. We ended up not using them, because we liked the U/V shapers better. Animating the U/V shapes was much of where we did iterations of looks for the client.

- Our general workflow was to draw a series of curves on the surface of the shoe where we wanted cloth to grow, and then to loft and shrink wrap the resulting surface to our base polygonal model of the shoe and sweatshirt.

- A "thread" is a collection of strands typically spiraling around each other. A "pattern" is how threads deform to go over and under each other, or in a knit how threads interlock with their neighbor. LkFabric defines a "per strand" and a "per thread" context, and has frames of reference to shift positions in relation to strands, threads and patterns.

- Deformation was handled by transferring the resulting animated strands from a static shoe mesh to the deforming one as a post ICE process. I can't share the compounds, but it basically involves getting the closest location to each strand point on the base mesh and then reinterpreting the strand points' location on new geometry.

- Multiple pattern curves do work but it takes some care to get used to how to get the results you visualize. Because almost all of the cloth we dealt with had a very fine "herring bone" pattern once we got a set of pattern curves and settings dialed in we locked it down. As a result lkFabric hasn't had as much testing and development in making it easier to generate many different kinds of patterns, we were pushing poor Leonard for animation control. He lost a lot of sleep making this.

Your feedback in this area will likely help him improve the experience (assuming he continues to refine the system, which I think likely if he gets a lot of feedback and encouragement) but in my tests I was able to create several common knits and weaves. Keep at it! If memory serves the number of pattern curves was set to 2, which is per U and V... So 2 curves for U, 2 for V. For a knit a single looped curve is used, the pattern only would extend along U (or V,) and every other thread would be offset. Offsetting the pattern of every "n'th" thread is very useful and key to getting many patterns.

- I think the sample scene you have has threads in a helix. In the commercials we actually had several layers of these threads. In one shot we had over 80 thread curves, in fact, but this was an extreme case. 12-24 gives you a nice density, and using some randomization per strand results in a look like yarn.

- The fabric shoe in the first commercial had many millions of individual fibers. A shot which would have gone in like a microscope never happened, but we were able to zoom in on a square centimeter of the shoe and see each fiber in each thread growing. (It helped that Royale provided us with crazy powerful 'best-in-class' workstations. I got quite spoiled.)

- You can also get a nice braided look by reversing half of the spirals or getting more complex.

- There are some color tools which have untapped potential. Shooting color down threads or strands or picking up colors from an underlying mesh could create some cool effects. This system doesn't just have to be fabric, it's a pretty broad toolset for doing all kinds of interesting things with strands, we didn't have time to really explore the many possibilities.

- The options to randomize and turbulize per thread and per strand are key to a natural look. This is the area where we had the most fun, using combinations and animating these nodes to make fibers grow in various ways. Nike tends to be very conservative, we were able to get some very wild and energetic motions which we always had to dial back, so there is a lot in this area which hasn't really had a chance to be shown off yet. Look at polynoids Lenovo/"carbon" spot for inspiration, lkFabric can make very aggressive, almost explosive evolutions like that very nicely.

I know that's hardly much help, I'll try to get a scene or two put together. In the meantime keep exploring, Billy and I definitely experienced a learning curve before we had a handle on the system but there is a lot of power there too. Our priority was to push Leonard for power over ease of use because the timeframe was so tight, but as a result this system is capable of far, far more than we ever got to show. Cheers - AM

Bullit
Moderator
Posts: 2621
Joined: 24 May 2012, 09:44

Re: LK Fabric from Leonard Koch

Post by Bullit » 20 Oct 2013, 15:40

Thanks Andy for feedback, so the way to grow a fabric that start in several parts and join it all at the end should be done with U/V shapes - i still have to look of what is that - ?

Matic
Posts: 70
Joined: 18 Jun 2009, 19:58

Re: LK Fabric from Leonard Koch

Post by Matic » 22 Oct 2013, 22:17

Ok, I've posted an example scene which is derived from the basic setup we used as a starting point on Nike. It's pretty basic but I've replaced all obsolete nodes and added comments throughout so hopefully it will be helpful.

It can be found on my website here, and here's a simple mental ray render of what the scene makes (just a square of fabric, doesn't get simpler than that lol. But there are a lot of things to mess with in there despite that.) :D

Image

enjoy! - am

User avatar
gustavoeb
Moderator
Posts: 587
Joined: 21 Jul 2010, 00:33
Skype: gustavoboehs

Re: LK Fabric from Leonard Koch

Post by gustavoeb » 22 Oct 2013, 23:28

:-o

speechless
Gustavo Eggert Boehs
Blog: http://www.gustavoeb.com.br/

Bullit
Moderator
Posts: 2621
Joined: 24 May 2012, 09:44

Re: LK Fabric from Leonard Koch

Post by Bullit » 23 Oct 2013, 02:44

Many thanks it appears nicely simple at first sight, at least the construction tree is.
I also deform the grid and the strands follow ok.

You say in a LKF core node note
You can decrease the "thread count" values for performance, and increase to the full number at render time.
I don't see any "thread count" input in LKF core, is this the "Number of Thread Curves" or the "Thread Repetition Length"?
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.

What is the sideways and backwards moving pattern?

Small notes:
-A typo in "LKF slide profile over UV" ppg in that it says U parameters also in V.
-In LKF creator there is a red node that seems to not make problems says self.LKFFlowActive

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.

Matic
Posts: 70
Joined: 18 Jun 2009, 19:58

Re: LK Fabric from Leonard Koch

Post by Matic » 23 Oct 2013, 04:38

Bullit wrote: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. :D

- am

Leo
Posts: 128
Joined: 04 Jun 2009, 17:06

Re: LK Fabric from Leonard Koch

Post by Leo » 23 Oct 2013, 05:19

Hey guys I'm glad that you are experimenting with LK Fabric.

I'm sorry to hear that some of you are having difficulties getting started.
It is quite the complex tool and I really would have liked to have at least one tutorial out with the release.
Unfortunately I barely had time to properly get out the tool before leaving the country for a month, and so didn't have time to put together a comprehensive tutorial.

Thanks a lot to you Andy for jumping in, you have answered all these questions very well!
It's great that you give everyone so much insight into what went into making the tools and where some of the decisions for certain workflows come from. :)
As Andy already said, this was built in a production environment for exactly that. There wasn't a ton of time and some things are really just focused on maximum control instead of ease of use. The sheer size of the LKF Core compound is a good example of this. I really tried though to make it a generally applicable tool everyone could use.
I will definitely do a walk-through video as you suggested.
Something you wrote and that everybody should take to heart is that a lot of the power lies in the utility compounds when plugged into the Progression on the Creator. This is shown nicely in your sample scene and the one that comes with LKF.

The knowledge you've put out there in this thread should be a great resource to anyone starting out with LKF.
Thusly I've made a little blog post on the site which points to your blog and this thread.
Here: http://leonardkoch.com/blog/2013/10/23/ ... ndy-moorer

Thank you so much for helping people out!

@Bullit, thank you for the feedback and the tip about the U&V naming in particular. I'll fix it with the next version.

Bullit
Moderator
Posts: 2621
Joined: 24 May 2012, 09:44

Re: LK Fabric from Leonard Koch

Post by Bullit » 23 Oct 2013, 17:09

Thanks Andy for explanations and the tip about strand scale, also Leonard for added input.

Added: it only works with Nurbs isn't it? - Nevermind of course with UV's...

Added2: since i am a :ymdevil: person i was trying to break it, so i put a 90º step and passed the trap with flying colors.

Leo
Posts: 128
Joined: 04 Jun 2009, 17:06

Re: LK Fabric from Leonard Koch

Post by Leo » 26 Oct 2013, 07:46

Bullit wrote:Thanks Andy for explanations and the tip about strand scale, also Leonard for added input.

Added: it only works with Nurbs isn't it? - Nevermind of course with UV's...

Added2: since i am a :ymdevil: person i was trying to break it, so i put a 90º step and passed the trap with flying colors.
Hah! ;)
Glad to hear that you are starting to get some good results with the tool.
Let me know if you come up with anything you'd like to show off, I'd love to put it up on the site.

And yes, it is unfortunately only fir nurbs, which tend to work quite well in this sort of context.

Bullit
Moderator
Posts: 2621
Joined: 24 May 2012, 09:44

Re: LK Fabric from Leonard Koch

Post by Bullit » 03 Nov 2013, 21:49

Thanks. I have been busy so just tried with a closed surface. The image only shows the U, V obviously starts in the imaginary line between first point of each curve.
With care i think it can be made just start where the U already started to not appear that it started from nothing.
Clipboard-1.jpg

vektrex
Posts: 12
Joined: 03 Apr 2012, 00:17

Re: LK Fabric from Leonard Koch

Post by vektrex » 14 Jan 2014, 17:49

Hi, first of all thumbs up for the plugin, it is great!
I'm building some carpets, I want to drive the strands color with a texture map of the grid emitter but the result is a randomization of the texture colors onto the strands, can u help?
Thanks.

Leo
Posts: 128
Joined: 04 Jun 2009, 17:06

Re: LK Fabric from Leonard Koch

Post by Leo » 15 Jan 2014, 00:10

Glad you are liking the plugin.
What you are trying to do is trivial in theory.
You just need to get the "LKF Get Strandcolor from TextureMap" compound, connect the geometry with the texture map on it and connect that to the strand color port.
I assume you are already doing that.
The reason that it looks like each strand has a random color from the texture-map is, that softimage can't display strandcolor (an individual color for every strand segment) and instead just displays the particle's color.
The particle color, just like the color of the strand segment is set to the color of the texture map at the closest location on the geometry.
So datawise everything is in order, but it displays the particle color data for the whole strand, that's why it looks random.
Unfortunately neither softimage's viewport nor its default renderer mentalray can render strandcolor, even though almost all the built-in strand compounds support it.
The superior Arnold however does. That is what we used in production. I think I remember that vray does as well, but I'm not sure.

Tldr: MentalRay&Softimage don't support Strandcolor. You have to use Arnold to render it.

vektrex
Posts: 12
Joined: 03 Apr 2012, 00:17

Re: LK Fabric from Leonard Koch

Post by vektrex » 15 Jan 2014, 00:36

Thank you Leo, I'm using arnold, I made a mistake in the color attribute of the pointcloud material.
Now it looks correct.
Again, compliments for your work, it's really useful, I'm designing some patterns on fabrics, your addon came in the perfect time! :)
Looking forward to see some news from your work. Keep going!

Post Reply

Who is online

Users browsing this forum: No registered users and 35 guests