The Quest for a Seamless Join
Without the BranchJoin nodes Seamless3d would not be any where near the same program it is today. It is the BranchJoin node that allows Seamless3d to automatically generate seamless joins, joins that are smooth and curved and tangentially matched to the surface they join. It was not long after I learnt how to write code that generated spheres out of triangles using sine and cosine functions back in 1996-97 times that I realized it was not hard to add code that could warp a sphere to make a wide range of curvy shapes including non symmetrical ones. However It remained a dream in my mind for some years to be able to join one curvy shape to another with a tangent matched curve join. Such an ability I realized would allow for very complex organic looking shapes to be generated by code. Although I was able to achieve seamless joins for the craters in my plant houses in late 2000, the techniques I used proved to be to limited when I tried to take them further in early 2001. I wanted to be able to generate seamless avatar neck, arm and leg joins. I put all my energy into this goal. These more advanced pursuits yielded unpredictable results, what ended up looking good relied to much on luck. As many weeks went by I would have one idea after another thinking this would be the answer to all my hopes only to find disappointment after disappointment. I started to try variations of ideas I had all ready tried but my mind began to eventually stagnate and was left with vary little energy to persists anymore. I began wondering if I should give up developing my own techniques and just use a commercial program instead. This led to me spending a day playing about with a commercial 3d modelling program that used NURBS to generate it's curved shapes. I noticed how this program used the concept of projection to join one part to another. Though my own code did not use NURBS to generate curves I began to think of a way I could apply the concept of projection to my existing techniques of generating curved surfaces. The simple idea of projecting a part onto another part was just the fresh new concept my mind needed to be able to develop a predictable reliable method for generating seamless joins. I soon found I was able to develop code that showed promising results. After some weeks had passed I was able to produce my first "seamless trees" for techuelife island which I uploaded in July 2001. I used seamless joins for the branch joins. Though I have refined my code a lot since then they used the same basic technique of projecting a part onto another part I use today. In October 2001 I uploaded my first skin animated "seamless avatar" beginning my range of seamless avatars. I did not use a graphical user interface (GUI) then. I found it was quite adequate to use only C++ code to generate my avatars like I always had. It was not until a few months into 2002 I decided to apply my seamless code to my techuelife triangle editor a program that had a GUI for hand editing triangles. So this was when my program known as simply Seamless3d came into existence available for download. I had hoped I would soon be able to write an interface so that my code that could automatically generate seamless joins could be utilized using only a GUI but this did not happen until early 2003 after I abandoned Seamless I for Seamless II which was more true to being a WYSIWYG editor for skin mesh animation in that the seamless joins are there during the editing stage but it was the fact that seamless3d II supported a scene tree window capable of displaying more than one kind of node that allowed for me to finally develop the BranchJoin nodes to serve as a building block and an an interface to my tangentially matched joining code using a GUI.

return