> My intention is to generate a complex pattern by given as few points as possible within a certain area. Later on, this pattern can be interpreted as building structure with a specific relationship or logic. In fact, I have tried out many different logical ways to generate points for iterations in order to set up a particular conditions between the point and its curvatures and hopefully to create a stable and balance structure. Above is only one of the attempts. However, I think it is not successful enough to achieve my goal. The difficulty is that the intersection of the curves is always too localized at a specific area. Modification should be made for clearer logic and waited to be explored 3-dimensionally.

p.s. Sorry for the belated post. but it's really hard to concentrate in front of the computer when you get to Barcelona!!!!! ;P

Hi Alice,

ReplyDeleteI like how in your idea each new iteration is based on the results of the previous. That is exactly what happens at the Serpentine Pavilion, and it helps to create a more efficient structure where elements are co-related.

However, in the point of view of scripting, your idea is a bit more complicated to produce than that of the pavilion. It involves a lot of workarounds. Here are some thoughts:

- I am not 100% sure about this: can the circles on the corners of the triagle have other radii than those? I mean, is it variable? If I want I can grow one of the circles and shrink the others and keep the relationship? If this is possible, it means you have to define how you are going to distribute the raddi between the circles, which is missing in your current logic. If not, how do you get these values?

- The perpendicular lines you want to generate are very complex for scripting. Maya does not have the tools of other CAD packages which makes this operation easier (as it was not originally made for 2D drafting). There are some workarounds for this, but even then you'll be faced with some questions: to which line of the initial square will the new line extend to? I guess it should be the closest line. But there is the slight possibility of the point to be equidistant from 2 lines of the square. How do you decide in this case? Another problem in this case is if the point lies closest to a certain line, but it is not the "opposite", but the line above... Another question: the point generating the perpendicular line is first obtained by the intersection of 2 circles and then translated as a point in a line which connects both centers? Then it should be perpendicular to this last line, but to which side of the line?

- I am not sure I am being clear. The thing is we have a lot of very difficult computational problems in your idea. Specially the part concerning the perpendicular line. One workaround for that is to think not of a perpendicular line from the point to the outer square, but the other way around: you make the new line be perpendicular to the side of the outer square. This is easily achieved by using the node closestPointOnCurve. You use as an input a point and a curve, and then it returns you the closest point on that curve to your initial point. Following the logic of smallest possible distant, we can presume this point on the curve is a straight line, which is perpendicular to the curve in the case of the square.

Keeping in mind these questions, try to re-think your process. Maya has some limitations concerning high precision 2d drawing, but you should try to use them in your favor. Some things are very easily done in Maya and provide amazing and fast results. Some thing are simply not made to be scripted in Maya/Python, and a easier done manually or in another software package. Let's try to work with what Maya does better (which is already a lot!)