anchor.diff:      For I:=1 To Pred(gridSize) Do
   		Begin
         BallID := J*gridSize+I;
  -      ClothGroup.Vertices.SetVector3D(BallID, vertexPosition, currentParticles^[BallID].position);
  +      ClothGroup.Vertices.SetVector3D(BallID, vertexPosition, Particles[BallID].CurrentPosition);
         ClothGroup.Vertices.SetVector2D(BallID, vertexUV0, VectorCreate2D(I/GridSize, J/GridSize));
         ClothGroup.Vertices.SetColor(BallID, vertexColor, ColorWhite);
       End;
  
positive.code:   For J:=0 To Pred(gridSize-2) Do
      For I:=0 To Pred(gridSize) Do
  		Begin
        currentSpring.Init(J*gridSize+I, (J+2)*gridSize+I, naturalLength*2);
  			Inc(currentSpring);
  		End;
  
  
negative.code: 	  springConstant:Single;
    	naturalLength:Single;
  
      Procedure Init(Index, PID1, PID2: Integer; Len: Single);
    End;
  
    ClothParticle = Object
  	  CurrentPosition:Vector3D;
    	CurrentVelocity:Vector3D;
  
  	  NextPosition:Vector3D;
    	NextVelocity:Vector3D;
  
  	  InverseMass:Single;
  
  	//Is this ball held in position?
  	  Fixed:Boolean;
  
      Springs:Array Of Integer;
      SpringCount:Integer;
  
      Procedure AddSpring(Index:Integer);
    End;
  
  Var
  //Array of springs
  