Grasshopper

algorithmic modeling for Rhino

I watched a lot of videos and skimmed over some pdfs and even searched but everyone seems to do advanced stuff with breps and never shows how you actually make one in GH? I'm talking about a 3dimensional brep with volume for example, so like a closed box?

Also what's the advantage of making BREPS in GH instead of easily drawing 3dimensional geometry in rhino, then using the geometry button in GH to put it into GH canvas
 

Views: 22190

Replies to This Discussion

Hi Luke,

Grasshopper has specific components for creating boxes, spheres, cones, sweeps etc. Then there are components that modify existing breps. As a geometric description "Brep" doesn't really help. If you tell us what it is you're looking to make, then we may be able to help you out. But asking how to make a brep is a bit like going to cooking classes and asking how to make a dish :)

The benefit of creating geometry directly in Grasshopper is basically that it is defined by parameters and therefore each to change. Sometimes you don't care about this, because you don't want to change a certain shape. In those cases it's probably better to create it in Rhino and import it.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

oh, I see now, it was just a misunderstanding of what a 'brep' was then. I thought it was a special type of geometry that had more malleable parameters than just using those 'sphere' or 'box' components, thanks for clearing that up.

so once we have a brep how do we orientate it to other things like points? for example, if i make a 3d box in GH, how to make it center on a point so that the point is dead center inside the box, or maybe how do you make the box snap to the point so that the point is on the center of just the top surface of the box, or the side surface, or the bottom, etc. How do you define these things?

In the software I'm used to, they use 'constraints' or snaps

also I seem to have a lot more questions than other people and I'm embarassed by it, should I put all my questions into one thread only instead of making new posts for new topics (because im such a beginner)?

The word Brep stands for Boundary Representation. That in itself doesn't tell you much, but allow me to break down the general idea behind Breps. In Rhino UI itself, we don't use the word Brep, that one is only for programmers. Instead "Polysurface" is used, but it is not an ideal replacement because a Brep may well have only a single surface.

At the highest level, a Brep is a collection of Faces. A Face consists of an underlying surface (which may be a Nurbs surface, or a Revolution surface, or a Sum surface, or a Plane, or...) including optional trimming curves. Trims are defined in surface UV space and belong uniquely to a single face. There can be any number of trimming curves, but they must all form a collection of closed loops. When two faces meet, their trimming curves are coincident, at least within tolerance. If the trims are not coincident within tolerance, then the two faces are not connected and the Brep cannot be closed. There is also a 3D curve called an Edge that is the average shape of all the trims it represents. Lastly there are Vertices, which represent all the kinks and seams in all edges. So a Brep consists of Faces, Surfaces, Loops, Trims, Edges and Vertices. It is in fact a topological entity much more than a geometric entity.

Because of this complexity it is quite difficult to make a valid Brep form scratch. The Rhino C++ SDK provides all the tools needed for this, but RhinoCommon (the .NET SDK that Grasshopper uses) does not. Instead, there are high-level functions for creating standard Breps such as boxes, spheres, tubes, extrusions and so on and more high level functions for modifying existing breps.

I think it's better if you ask one question per post rather than putting them all in one pile. Don't be embarassed if you don't know something, when it comes to Breps, very few people have a firm grasp on that specific topic (I know I don't).

--

David Rutten

david@mcneel.com

Poprad, Slovakia

This makes me thing maybe FAQ needs a "lingo" thread to let people know what things are called. For example component is component, not button, or battery, ect.

Also, what are the capabilities of GH in regard to creating 'biases' or simulated annealing stuff (I'm only asking you because I think you're the guy who developed the software, still trying to figure out who this 'mcneel' is).

Most of the people around here appear to be using galapagos or other 'evolution' type approaches to finding the most optimal form or structure for their projects, but mine rely on uniformity and strict rules, with clearly defined edges so there's no need for 'creativity' at all. (for example - what is the cheapest way to configure water piping for a building, obviously it's almost always going to be whatever route allows the shortest piping + the smallest size piping). In order to account for things like turns you could simply make a 'bias' to not 'like' turns because turns could be set to equal a long distance of piping. So for example ever foot of pipe cost X, and every 90 degree elbow fitting cost Y, so if Y=10X, then if there's a way to route the system with 9 feet longer pipe but eliminate a turn the formula would choose that way, since in the formula eyes that's a shorter distance. Can GH do things like this?

Luke, please please please go to the tutorial section and go through the primer- the entire thing, and other tutorials there (even buy the book). gh is something you need to understand, Its not something to easily jump in to. Also, gh does not "do things for you" it can do whatever you design it to do. New things and uses are discovered everyday. Instead of asking all these questions you can essentially answer them all your self by understanding how and what grasshopper is doing. http://www.grasshopper3d.com/page/tutorials-1

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service