. As part of this I have been using grasshopper and various plugins to try and explore these phenomena digitally.I came across a brilliant set of scripts and applets by nervous system, a design studio working with algorithms to produce jewellery and other designs. In particular I am trying to replicate their hyphae lamps that are grown using algorithms based on leaf venation.See their work here:http://n-e-r-v-o-u-s.com/blog/If you scroll down they have placed a video explaining step by step how the growth system works or alternatively watch the video directly on vimeo:
http://vimeo.com/25604611
I am still learning grasshopper and kangaroo and also have tried to look at hoopsnake for looping or iterative functions. I am trying to achieve this without scripting initially. I feel that this is achievable within Grasshopper's and Kangaroo's definitions.I have added notes to my definition so far to try and highlight where I am going however I am very new to both Grasshopper and Kangaroo.This is a work in progress but I would really appreciate any comments or any help anyone can give with this to let me know if I am heading in the right direction.
Many thanks,
Michael
…
edefining the axis variables, logarithmic scales, display thresholds, better marking management - or at least add contrast!
Hey Fred,
thanks for the feedback! This is a basic version, and personally I used a custom component to read and parse the history files from the canvas to be able to e.g. scroll through generations and solutions or display more solutions at once (via pathes, mostly requires modification of the initial setup) ...
but you are right. I would love to bring the solution's navigation directly into the rhino viewport but I think that would be a major hack .. unless you can give me a hint how to do that. the displaying and user-preference-handling are besides a re-entrant history, some more algorithms and parallelization the next things to tackle, but display is definitely one of the easiest, so ... soon! work will begin in january i guess, since the project then starts i hope - but it will start for sure.
best
r
…
I'm now trying to take a 2d piece of geometry and morph it into each box on the surface.
Before doing this, I was using an extruded version of the above geometry, but I need it flat so I can later do smash in rhino, and with the extruded geometry, it wont work. I need it essentially to be a baked surface with holes in it.
Here's the result from when i get to the SBox stage:
Now, when I use box morph in the same way I did with the extruded geometry, box morph throws up an error "Cannot morph from degenerate box" which is no good. I think there's a way I can do it with Surface Morph, but I'm not sure what to plug in for the various parameters of Surface Morph. Here's what I'm guessing it is:
G(eometry): The 2d geometry I want to morph, currently a Brep.
R(eference Box): A bounding box for the above 2d geometry/Brep
S(urface to map to): I'm assuming the loft component which represents the curved surface.
U(Surface Space U Extents): Not sure, is it the U Domain, or from the Domain^2 Components?
V(Surface Space V Extents): Same issue above for U
W(Surface Space W Extents): Same as U and V
I need this to just be flat morphed geometry on the surface. And I'm very confused!
Any help is greatly appreciated!…
work when i finished, saying as follows:
Runtime error (MissingMemberException): walker instance has no attribute 'x' Traceback: line 21, in step, "<string>" line 34, in script
the code is as follows:
import rhinoscriptsyntax as rs import random as r
r.seed(seed)
#class class walker: def _init_(self): self.x = 0 self.y = 0 def point(self): shape = rs.AddPoint(self.x, self.y, 0) return shape def step(self): choice = r.randint(0,3) if choice == 0: self.x = self.x + 1 elif choice == 1: self.x = self.x - 1 elif choice == 2: self.y = self.y + 1 else: self.y = self.y - 1
#time w = walker()
pList = [] for t in range(time): w.step()
pList.append(w.point()) a = pList
can anyone help me figure it out?
thanks
file attached
grasshopper version 0.9.0064…
Added by Chunwei Zhang at 3:37am on January 29, 2014
h is manipulate these contour lines so that, whenever they are close to the projected lines, they are distorted, creating a weaved line.
The solution I was trying to reach was dividing both lines by a similar parameter, and move the points closer to the line upwards or downwards.
It sounds so simple, but I can't figure it out.
Follows the definition with the input geometry in it.
If anyway could help, I would be immensely grateful.
Best,
André R.
…
example, deploying a single block on multiple points works well for me. The data for the points is from a shapefile, and the information regarding elevation and angle comes from a coresponding table:
What I am wishing for is to be able to use an equal length list of layer names such that the correct block is mapped on each corresponding box. What's pictured below was a test of this thought, but it deployed 235 blocks on each of the 235 boxes, not the correct block on each point--this is a subset of a larger data set.
The script is for deploying telephone poles in an urban scene--we have geolocated data for each pole and its equipment [E.G., light, transformer, etc.). The obvious workaround is to deploy the script for groups of poles, but I would probably look at using a python script instead at that point, because for some purposes we will have tables that change (E.G., different scenarios). The tables and geodata comes out of R, and can be in any form required.
Curious if I'm understanding this limitation correctly, and if there is any conceivable way to do what I'm trying to do. I've attached a GH file with internalized data coresponding to the above as well as a simplified version of the pole file with the appropriate layers.
I'm new to grasshopper, and this is my first post here, so appologies if I'm missing something obvious. Thanks in advance,
Peter
…
ll learn the essential skills of manipulating geometry using various computational methods. The workshop will specifically demonstrate how to control the performance related data flow from Autodesk Ecotect, Vasari and Maya into the parametric modeling environment of Grassshopper; how to generate complex 2D/3D patterns based on the abstract relationship among points, lines and surfaces; how to integrate Rhino’s surface modeling with Maya’s mesh modeling; how to use performance data baked from other program as the driver to manipulate adaptive geometries across the building skin.
Lecture Topics
Parametric design concepts
Computation for Performance Driven Design
Morphing geometry and biomimicry
Surfaces and meshes
Demonstrations
Image based tessellation
Pattern making
Paneling with adaptive objects
Box morphing and variations
Vertex color based object morphing, integrating Maya with Grasshopper
Geometry manipulation based on the solar data from Ecotect and Vasari
Dates - July 10, 2012 : Workshop Announced + Registration Opens. - August 15, 2012 : Registration Closes. - August 18 &19, 2012: Workshop.
Check more detail online
…
onent.
If(x=-1,A,R)
Here is my guess:
you have used the cross product as described in earlier posts to determine the direction of rotation... so if the direction is counter clockwise x=-1 and Clockwise x=1... then somehow, this expression causes either the values from the Clockwise or Counterclockwise angles to be used.... I think this is correct, but my question is more about the logic of the expression itself.
As far as the machine goes... I am using a 3 axis milling machine that uses Mach3 as the gcode interpreter. I am building the Tangential knife hardware on my own. It will probably be used for a variety of things.. the most conventional of which would be a tangential knife, but I have been using the mill with additive processes like spraying and extruding. This last part is where this GH definition could be fun and useful... the knife system needs to always be in line with the direction of travel, but for an additive toolhead... having the rotation of the toolhead vary from the direction of travel could be nice. What you have helped me with is the capability of writing the gcode with the angle of rotation of the toolhead to stay in line with the direction of travel.
this is probably way more than you are interested in hearing... so if your question is more about Mach3 I could explain more how it works.
I has an integrated tangential knife command that figures out the same angles that you helped me with... but it does this as it runs the gcode... I want to have the ability control the tangential Axis in ways beyond what Mach3 is made for.
I will post some pictures as the project comes together more
Chris... thanks for all your help.…