This is a follow-up to my last post on tetrahedral morphing using Grasshopper3d and some VB.net. I implemented this process into a recursive methodology using the Hoopsnake Component for GH developed by Yiannis Chatzikonstantinou, in order to put together a dynamically growing system. The process utilizes a method similar to DLA (Diffuse Limited Aggregation) with the significant difference of being sustained in only one face of the tetrahedron each time. This way the aggregated geometry remains non self-intersecting. The results of this process are quite interesting mostly because of the emergent characteristics of the recursion .
Box Morphing is a common technique used in GH to create panelled surfaces or evenly packed geometries. Tetrahedral morphing however is not available through a single component. Going through a very interesting discussion in the GH forum, I decided to address a simple aggregation system through Tetrahedral Morphing. The definition implements a 4×4 transformation matrix [Math Power!!!!] to morph an initial geometry to a provided set of tetrahedra. Moreover, some VB.Net scripting is essential here for the development of the matrix (originally written by Jacek Jaskólski \ re-written narrowed down by myself). Tetrahedral morphing can be extremelly interesting in the case of Barycentric coordinates, follow the GH discussion if you want to get into more detail on that .
In TetraAggregation the initial morphed geometry is a 4-axial relaxed surface dependable on 4 points(thus a tetrahedron). This is geometry is consequentiality morphed into a group face-attached tetrahedra to create the gap-less aggregation result.
A amazingly interesting and hard to visualize surface is the Steiner Surface found by Jacob Steiner 1844 (Steiner Surface). A personal favourite of mine due to the the fact that it can be enclosed into a tetrahedron (really useful in terms of tilling using triangles and aggregations) and its multiple dimension projection capabilities.I wrote a custom VB.Net script for the Steiner Surface using parametric trigonometrical equations to define the shell. The script incorporates two main input values, the diameter of the surface (size) and the number of iterations (the detail in the smoothing of the surface) .
I have also compiled the script into a GH User object because I find them really easy to use instead of searching and browsing in my hard drive. You can grab the GH user Object as usual from the [Sub]Code page under the tab GH User Objects.
I am particularly interested to see any results that or combinatory methods in which this surface can be used, so please do not hesitate to provide feedback and share your projects with me.. Enjoy..