One of the semi projects done at Parametric Design Workshop. 
 GenerativeComponents Script does create a random set of curves and then wraps them around the selected bSplineSurface. 
   function (BSplineSurface powierzchnia)  
  {  
     SetRandomSeed(0);  
     Point mojPunkt = {{}};  
     // tutaj deklaruje punkt  
      for (int j = 0; j < 20; ++j)  
  {  
      double x = Random(0,20)*0.1;  
      mojPunkt[j] = {};  
       for (int i = 0; i < 10; ++i)  
      {  
        mojPunkt[j][i] = new Point().ByCartesianCoordinates(baseCS,x*0.1,0,i*0.1);  
        if (x>0.9999) x=x-10;  
        if (x<0) x=x+10;  
        mojPunkt[j][i] = new Point().ByUVParametersOnSurface(powierzchnia, x*0.1, i*0.1);  
       x = x + Random(-10,10) * 0.2;  
      }  
    }  
     return mojPunkt;  
  }

One of the semi projects done at Parametric Design Workshop.

GenerativeComponents Script does create a random set of curves and then wraps them around the selected bSplineSurface.

  1. function (BSplineSurface powierzchnia)
  2. {
  3.    SetRandomSeed(0);
  4.    Point mojPunkt = {{}};
  5.    // tutaj deklaruje punkt
  6.     for (int j = 0; j < 20; ++j)
  7. {
  8.     double x = Random(0,20)*0.1;
  9.     mojPunkt[j] = {};
  10.      for (int i = 0; i < 10; ++i)
  11.     {
  12.       mojPunkt[j][i] = new Point().ByCartesianCoordinates(baseCS,x*0.1,0,i*0.1);
  13.       if (x>0.9999) x=x-10;
  14.       if (x<0) x=x+10;
  15.       mojPunkt[j][i] = new Point().ByUVParametersOnSurface(powierzchnia, x*0.1, i*0.1);
  16.      x = x + Random(-10,10) * 0.2;
  17.     }
  18.   }
  19.    return mojPunkt;
  20. }