In my program, I have used the overlap of geometric shapes to design jalis. 
For my program, I have used even-sided polygons and circles. Each run of the program asks the user for the parameters defining three different polygons, and these polygons combine to become a pattern.
The following is a schematic representation of the steps followed to get the jali:
