There is a good tutorial by Josh Mason on how to create a Weaving effect: it uses a canopy component and programatically creates the weaving. We wanted the same effect but with less code. That’s why we created the geometry of the weave within a single component and then populated a surface. This is a quick video guide(video only):

Generative Components - Waving Example

The geometry is created using a sine function in the MCWeaveComponent.

Generative Components - Waving Closer View

Waving Surface - Closer View

The weave’s start and end points are lying on the input polygon of each component, so when populated on the surface each component is connected to it’s neighbors.

Waving Torus Closer View

Waving Overview

The problems with this scenario is that the surface of the weaving is broken near the connections between different components.

The zip file contains:

  • MCWeaveComponent.gct – the component that is populated. You should load it first.
  • MCWeavingSurface.gct – populated surface. One could modify the control points to change the whole system
  • MCWeavingTorus.gct – populated torus surface. Weaving of a torus.
  • screenshots


6 thoughts on “Generative Components Tutorial: Weaving

  1. Ben says:

    Looks cool. Josh Mason did a tutorial a while ago that solved the problem of the threads intersecting, and gave a genuine weave. It’s probably still floating about out there somewhere.

  2. morphocode says:

    hi Ben,
    thanks for your comment! 🙂

    yes Josh Mason’s tutorial is a very good one. Could be found on the wiki of UEL CECA..

    We wanted to implement this effect in a more declarative way using less code, but the problem of the threads intersecting is a major one… maybe we’ll dig on that one to solve it soon…

    Greetz 🙂

  3. Josh Mason says:

    Hey guys,

    Lovely to know my work is being disseminated. I feel like maybe I should get sunglasses and a stylist now…

    My reason for developing the weave however is to get away from the ‘component-ness’ of components. The script I wrote was meant to be tiny to show how easy it is to apply something continuous that goes across an entire surface using a component. I can see from the images that your component is kinked at intersections because to build tangency between curves is a bit tricky.

    I fully encourage you to upgrade my example by getting rid of the script but can you do it with continuous elements? I’ve refined that example recently. I will try to send it soon.

  4. morphocode says:

    Hi Josh,

    First of all, we are happy to see your comment here!

    Your weaving tutorial was very helpful to us, just as your other tutorials for attractor and component canopy available online.

    When we created our example, we tried to get rid of the script in order to make it easier for users which were not familiar with gc script… However as you said the intersection between the elements is tricky and the splines end up as multiple objects(different spline for each component). In result the geometry at the joints between the components is broken…

    “can you do it with continuous elements?”
    …we’re not quite sure 🙂 …We have to give it another try soon…maybe we’ll manage to do it better

    We’ll be happy to see your refined example and wish you good luck in your search of a stylist 😉


Leave a Reply

Your email address will not be published. Required fields are marked *