About digitalsubstance

Architecture Design Computation

Tree Iterator – Animate GH Data Trees

forest_hike_icon_500new

Dear “Diary”,

I know it has a while since I last wrote. But I recently had a great opportunity to apply part of my research to actual build geometry, and for that I am grateful.

In the meanwhile I thought i should share in the form of a .gha assembly a routine that I use frequently to animate data that get into my hands from grasshopper definitions that use Hoopsnake and Anemone(Lately). The main issue with these data sets is that while these two add-ons are running, due to their intrinsic characteristics, is kind of difficult to animate their wonderful iterative and recursive formations.

Canvas at 00;48;58

So, to be brief, what ever formation you create with these two looping tools, you can now easily post-animate it and iterate through the various steps of the solution.

The component is fairly simple to use. Data as input and a few toggles for different options of iterating. It can either work with a timer or by a slider. You will find it under the tab “Extra”

I will post the gha file and an example here and I will also include it in the Milkbox group of the Grasshopper3d forum.

Please bear in mind that this component is probably full of bugs, which I plan to resolve in the future.There is a slight change to include a stable version of this routine in the next version of Nudibranch. Please use it “as is”, it does not come with warranties. Please give credit where credit is due according to the CC license of this website.

Suggestion, comments, criticism are always welcome.

NudiBranch 0.028 is out!

mainreleasebanner

Seven months later after the first official release, I kind of managed to properly update Nudibranch to the Grasshopper 0.9.005X series. The new version out is 0.028 (yes there were 27 different incremental attempts in between..) and it marks bug fixes (two evident plus more that were not that easy to spot), minor updates and optimization of some components, and finally 5 brand new components (**more details further down on this post). Bouncers, Slicer, BundleAttractor, MeshClimber, FrameGrid(new sub-tab Utilities) and Box3dGrid(new sub-tab Utilities).

iconsCapture

Hopefully this is a major update, not only for introducing new components but mainly for improving the existing functionality of the add-on, specifically by reinforcing its global character, increasing its accessibility and user-friendliness, while exponentially reducing the calculation time for many of the existing routines. This release is unfortunately supported only by Rhino 5.0. The previous release for Rhino 4.0 is still going to be available to anyone who might be using the previous version of the software but its functionality is limited.

Some snapshots of the New Features are displayed in the following figures.

bouncers001

bundle001meshclimber001

slicer001
Of course your feedback is valuable in any case, so do not hesitate to contact us and add your comments or critique, either here on the blog or though the official Nudibranch group in the Grasshopper3d forum.
You can download Nudibranch of the Food4Rhino website.
Enjoy :)
**
BUG FIXES
• Satellite Component: The component was throwing an exception when loading geometry that was of Type IGH_GeometricGoo. This is fixed. (thanks Igor GH Forum for noticing)
• PointAttractor and CurveAttractor: These components were creating Null vectors when the attractors where further than the attraction range. This is fixed, they return Zero length vectors. (thanks Igor GH Forum for noticing)
EXISTING COMPONENT IMPROVEMENTS
• AttractorValues + CurveValues:
 Switched data arrangement to longest list
 Added additional right-click drop down menu to the distribution input
 Added auto-fill options when a value-list component is connected to the distribution input
 Added three options for the attractor solver as a right-click menu on the component (Minimum, Average, Maximum)
• PointAttractor + CurveAttractor:
 Switched data arrangement to longest list
 Added additional right-click drop down menu to the distribution input
 Added auto-fill options when a value-list component is connected to the distribution input
• TwirlAttractor:
 Switched data arrangement to longest list NUDIBRANCH Version History
Nudibranch Version History
• Railway:
 Added inheritance of the DataPath for the curves used as rails to organize the
generated points in a branched structure of the original.
• Walkers:
 Added an extra input for randomizing the speed for each walker in the
domain of (-Factor to Factor)
• PointHicking + CurveHicking + PointPatrolling:
 Switched data arrangement to longest list
• Uphill + Downhill:
 These components were replaced by the Climber Component
 Added two options for the solver as a right-click menu on the component
(DownHill, UpHill)
NEW COMPONENTS
• Bouncers:
 Animators Tab: Generates and animates a Number of Particles bouncing
within a user defined Box boundary.
• Slicer:
 Animators Tab: Generates and animates Rhino Clipping planes for a set of
user defined curves.
• BundleAttractor:
 Attractors Tab: Generates an iteratively bundled point list for any given
DataTree population of points.
• MeshClimber:
 Scramblers Tab: Generates the gradient descent or ascent paths on a Mesh
object for any provided point list.
• FrameGrid:
 Utilities Tab: Generates a 2-dimensional grid of points distributed as a
row/column structure for any given 3dRectangle.
• Box3DGrid:
 Utilities Tab: Generates a 3-dimensional grid of points distributed as a
row/flippedrow/column structure for any given Box.
EXTRA NOTES
• All modified components have been marked as “OBSOLETE”; hence they will continue to
operate in existing files with the previous release functionality. The “OLD” logo will appear on
top of the component’s icon.
• Added a tab icon for the 0.9.005x series
• Added a new icon in component Libraries
• Loaded from COFF Data
Creative Commons License

Nudibranch Copyright (C) 2013 by Marios Tsiliakos is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

Permissions beyond the scope of this license may be available at www.digitalsubstance.wordpress.com.

Triaxial Waffling Grasshopper3d Definition

triaxialwaffle01

Almost 4 months after my last post..:( i have been really busy lately , mostly with amazingly interesting stuff that I’ll have the time (me thinks!) to unveil in the near future, plus the development for the next build of Nudibranch  to be up-to-date with the new grasshopper version 0.9.0052.

But just to get things rolling and before moving into any major update, I decided to share a fabrication oriented definition of mine, that was developed quite a long time ago. I tried to narrow it down , clean it up and share it along with a small code snippet in Python to generate dot text objects in the rhino viewport (this is now embedded in the new gh), but it serves the general purpose of learning how to interact with rhino objects through Gh.

triaxialwaffle02

triax002

triax004

On the other hand, this definition is really useful (though my point of view at least) especially for the many advantages it has over the normal 2-dimensional waffling system, mainly in terms of rigidness and detail. At the same time this fabrication methodology provides a denser structural framework for any possible post-processing routine in order to describe better the analysed and fabricated design (most of the times a freeform, double curved surface or object) like for example the implementation of a gap filling material like stucco, cement or resin forming somehow an interesting composite system.

triax001

triax003

The system takes on single surface and translates it into ready to laser-cut stripes laying on three different grid systems, + tags + the quantification of the joints of the system(python snippet). The code of which is just a few lines as you can see below.

</pre>
import Rhino

dots = []

att = Rhino.DocObjects.ObjectAttributes()
att.ColorSource = Rhino.DocObjects.ObjectColorSource.ColorFromObject
att.ObjectColor = col

for i in range(len(pos)):
 dot = Rhino.Geometry.TextDot(text+str(i),pos[i])
 dots.append(dot)
 if bake == True:
 D = Rhino.RhinoDoc.ActiveDoc.Objects.AddTextDot(text+str(i),pos[i],att)

Dots= dots
<pre>

Let me know if there is any way to improve this definition or if bugs are brought up.  You can grab it the usual place ..

:)