rtitions." (http://wias-berlin.de/software/index.jsp?id=TetGen&lang=1)
To continue with my wrapping career, TetRhino (or Tetrino) is a .NET wrapper for the well-known and pretty amazing TetGen mesh tetrahedralization program. It provides one new GH component for discretizing or remeshing objects using TetGen. Basic tetrahedralization functionality is exposed with a few different output types that can be controlled. At the moment, the only control for tetrahedra sizes is the minimum ratio, which is controlled by a slider. This is hardcoded to always be above 1.0-1.1, as it is very easy to generate a LOT of data (and crash)...
The libs are divided again into different modules to allow flexibility and fun with or without Rhino and GH, so have fun. All 4 libs should be placed in a folder (maybe called 'tetgen') in your GH libraries folder. Remember to unblock.
Once again, the libs are provided as-is, with no guarantee of support for now, as I use them internally and do not intend to develop this into a shiny, polished plug-in. If there is enough interest, I can tidy up the code-base and upload it somewhere if someone more savvy than me wants to play.
TetgenGH.gha - Grasshopper assembly which adds the 'Tetrahedralize' component to Mesh -> Triangulation.
TetgenRC.dll - RhinoCommon interface to the Tetgen wrapper.
TetgenSharp.dll - dotNET wrapper for Tetgen.
TetgenWrapper.dll - Actual wrapper for Tetgen.
Obviously, credit where credit is due for this excellent and tiny piece of software:
"The development of TetGen is executed at the Weierstrass Institute for Applied Analysis and Stochastics in the research group of Numerical Mathematics and Scientific Computing." See http://wias-berlin.de/software/index.jsp?id=TetGen&lang=1 for more details about TetGen.
To wrap up, some notes about the inputs:
These are the possible integer Flags (F) values and resultant outputs for the GH component:
0 - Output M yields a closed boundary mesh. Useful for simply remeshing your input mesh.
1 - Output M yields a list of tetra meshes.
2 - Output I yields a DataTree of tetra indices, grouped in lists of 4. Output P yields a list of points to which the tetra indices correspond.
3 - Output I yields a DataTree of edge indices, grouped in lists of 2. Output P yields a list of points to which the edge indices correspond. Useful for lots of things, very easy to create lines from this to plug into K2 or something for some ropey FEA (or not so ropey!) ;)
As this component can potentially create a LOT of data, especially with dense meshes, care should be taken with the MinRatio (R) input. This will try to constrain the tetra to be more or less elongated, which also means that the lower this value gets, the more tetra need to be added to satisfy this constraint. Start with very high values and lower them until satisfactory.
Hopefully shouldn't be an issue, but it's possible that you need the 2015 Microsoft C++ Redistributable.
Happy tetrahedralizing...
UPDATE: The tetgen.zip has been updated with some fixes.
UPDATE2: This is now available on Food4Rhino: http://www.food4rhino.com/app/tetrino
…
Added by Tom Svilans at 1:27am on October 24, 2017
curves A and B.
For each point pA on curve A,
you need the corresponding tangent vector tA on curve A, and the lists of "cone" vectors pB(j)-pA and tangent vectors tB(j) on curve B. so you have three vectors tA, tB(j) and AB(j)
these three vectors define a parallelogram thas varies along j
3d determinant of the three vectors above gives you the volume of this parallelogram. When 3dDet = 0 then it means it's flat, the vectors are coplanar. Thats what we're looking for.
So you just need to plot the curve 3Ddet = f(pB) , still for each point on A
'pB is the parameter here'
graphically solve these cuves to find the zeros and you feed back the resulting parameter in curve B. draw te line, done.
You can manage double solutions or cusps directly on the plot by using clostest point and >= conditions to kill unwanted results.
I do it twice, from crv A to crrv B and from B to A to make sure I catch start and end generatrices each time.
The videos you posted are interesting. I don't understand how it works with just 2 slider to tune the curves.
…
e it would of course be amazing if these could be displayed in a Rhino window / baked as objects...). I use the BarGraph as a histogram constantly for exploring the data I generate as I'm designing - in fact the graph components are one of the most frequent components I use at the 'end' of my design process. Would be nice to add Titles to the graph/bargraph and labels to axes, as well as the feature requests Marc points out above.
Also wondered if the 'MD slider' would soon have a 3D option similar to the colour picker? Would be useful.
Of course many other graph types would come in quite handy (I often export my data to Excel in order to visualise better) - 2D scatter with the tree structure indicating different data sets and therefore different colour/point types on the graph (Excel-style) would be handy. Of course these could be created as Grasshopper objects and displayed in the viewport but I find the work needed to get to a presentable output this way is often too much and its faster for me to just look at the data in Excel. Also in the Rhino viewport you often want to be visualising the end result of your definition (i.e. geometry) and not have to zoom somewhere else or fiddle around to try to display a graph of values at the same time. I could imagine an 'output' control panel could be quite handy, where you drag and lock in the various text panels / graphs / etc which are useful to you and tell you information about your design as you are varying the input parameters. This could be outside of GH possibly and maybe linked to one side of the Rhino viewport.
Any thoughts? Of course some of these requests are asking Grasshopper to expand a bit more into the 'data display/interpretation' space - however I think this is extremely important as with each design I create there is most always associated data which tells me about its performance in some way or another and viewing that / illustrating it to clients in a quick and friendly way is key. Of course what is there already is most impressive and useful!
Cheers
Luke…
it into points on that surface. From Each Point draw a Line and then divide that line into points. The end result is a 3D cube of points made from multiple rows and columns in all directions.
The file is attached so you can have a play for yourself.
The first example shows, as you say, a very nonsensical path structure resulting from such a simple problem. Why on earth does it need so many zeros at the Front {0;0;......
If you change the first slider from 1 to 2 things become a little more clearer.
Because we are now supplying two sets of surfaces on on the same path then the second zero {0;0... starts to make sense. as we can see that when it refers to the second surface it is now a {0;1;...
If you then change the Multi-Branch Toggle to True the first zero starts to make sense.
So with 1 surface on different original Paths {0} and {1} we get the first zero meaning something.
Have a go yourself by changing the settings in any of the Purple circles and see what happens. You'll find that the additional levels of path structure a present for the "what if" scenarios. But there has to be consistency because I don't want to create a definition with the intention of having multiple possibilities and finding because I add complexity that the structure suddenly becomes complex.
I hope this helps
Danny
…
dy stuck.
The basic concept is to create a 3D boundary(a box),
by generating random differnt values(length) and vectors(xyz),
such as (0,0,2), (-3,0,0), (0,1,0), then connect these points in order,
so there will be a snake(polyline) running in the boundary and
keeps growing longer through looping.
However, I can't quite understand how to use hoopsnake to achieve such action.I tried many times but all of them doesn't work.
About the 2 gh files below,
Gourmet Snake 3D.gh is before I use Hoopsnake,I tried to run it without boundary.
Test snake.gh is that I tried to generate a random number for every loop, then save them all and sum them up every loop, so I can check if the result is out of boundary,
if true, then I can mutiply -1 to let it decrease till it's in the boundary.But I can't achieve it through Hoopsnake.
Sorry for the poor english expression,if you understand my problem,any suggestion will be appreciated.
Tien
Gourmet_Snake_3D.gh
test_snake.gh…
ng and algorithmic design for furniture production. Ideally I would like to be able to import a network of curves into this definition to automate the node creation process. Unfortunately as it stand it will only work for one of them.
My question is, how can I present a list of the connection points & vectors from a network of curves for this to work?
Below you can find the definition along with a few pictures of the concept and development. The white parts were modeled in Solidworks and printed on my Ultimaker 2.
If you're interested in following this project I'll be posting regular updates on my twitter: @pencil_stroke
Thanks in advance,
Charles
…
Added by Charles Fried at 12:32pm on February 5, 2015
ning the simulation looks great(see figure 1). However, I find some question(see figure 2), the red wire frame on the right should be symmetry like the physical lamp, but it has a extend distance now.
I should like to keep the wire frame structure with same length after simulation.
maybe I miss some setting in Kangaroo, can any one fix it? thanks in advance.
I put this ghx file under the attach.
…
n elements in grasshopper.
So, I found myself rather blocked, not being able to do certain operations which I need:
1. I can't close the tubes, leaving the center circle open, when I try to input the cap holes, it takes all the tree and it closes, and I am still confused about how to edit trees and items. It would be rectangular shaped holes, rather small (it is intended for bicycle wheels, thus rather thin and long). I wish to be able to change the amount of these holes, since I am not certain yet.
2.In the same time, I have no idea how I would create a slope joining the 2 vertical boards ( floors).
Here is a small drawing explaining what I am looking to draw
In the same time, is there a way to create a slope, joining the same floors, but build on a different principle.
A slope revolving around the long vertical tubes ( trees). As in the image below
Thank you beforehand for your help, if halfway, you see the there is a faster way, or that would be more of a grasshopper way, of creating or changing an object, please do tell me, it would help me understand GH better.
I wouldn't have asked, if I wasn't this tight in terms of time, and if I had the slighest idea on how to do it. So pls help, and thank you.
…
Added by Archiheart at 1:51pm on November 13, 2015
er.
¿WHAT IS PYTHON?
Python is a modern programming language. Python is sometimes called a scripting language or a glue language. This means python is used often to run a series of commands as a script or used to create links between two other technologies as a glue. It is easier to learn and use than other non-scripting style, compiled languages like C#, VB, or C/C++. Yet it is quite powerful.
You may need Python if you want to automate repetitive task in Rhino much faster, perform tasks that you do not have access to in the standard Rhino or Grasshopper tools, generate geometry using algorithms, etc.*
*More info HERE
GOALS
- To get familiar with programming using Rhino.Python, its tools and standard strategies. - To understand curves and surfaces definitions created, which are the based for complex objects generation. - Create 2D and 3D parametric objects using surfaces with Rhino.Pyhton scripts. - Python components in Grasshopper.
CONTENTS
- Program interface and syntax: Scripts generation and modules. - Basic concepts and strategies for programming using algorithms. - Lists, sequences and maths functions. - Loops and conditions - NURBS curves - Surfaces definitions. - Python for Grasshopper.
Dates: May 1, 2, 8, 9
Timetable: Saturday and Sunday 4 - 8 pm (Madrid, CET)
ENROLLMENT
185 eur
160 eur - Early bird fee for first 4 students
…
Added by Diego Cuevas at 3:36am on September 11, 2018
tects to overcome the imposition of prefixed architectural forms in order to enhance performance-driven design and responsive kinetic solutions that interact with humans and environment. Lectures on parametric design simulation, generative and form finding as well as environmental optimization, analyzing and digital fabrication prototyping, are integrated together in 2 main modules. Students from the beginning of the school will be divided into groups to compete on a case project increasing their ability to define project parameters, design factors, solving problems, understanding factors relationships, involving environmental and human sensors, and optimizing their projects solutions in smart and inelegance way. In the beginning of the school, parametric modelling will be introduced (Rhino3d and Grasshopper) to build the necessary skills of parametric generative form methods to students. In this module will be dedicated to digital design methods and physical model making by various fabrication techniques, including laser cutting and 3D printing. Students will focus on the idea of creating algorithmic architectural form inspired by nature and their research will be supported by a series of lectures. Also they will be split into groups in order to develop projects assigned by the professors. This Module also adds Form Finding techniques to the parametric design strategies. Students will learn how material system behaviors, physical forces and responsive structure system can be digitally simulated into parametric models in order to explore complex forms that optimized and adapted to its natural behaviors, initial forces, material, particles, and structure systems. Series of lectures on form finding, natural structural algorithms, material behaviors, and physical forces will lead student to optimize their project forms. It is experimental laboratory in which kinetic interactive Architectural models are tested and designed. Students will develop novel solutions, building upon learning responsive kinetic systems. They will design Architectural responsive robotic systems inspired by nature. Projects will transform by adapting to environmental conditions and human behaviors happening at real and virtual levels.
…