w elements (e.g. only fabric between 2 radial cable). But if I try to simulate a completely whole structure like picture below + if I trying to model a material that has more degree subdivision + adding diagonals (as resistance to shear deformation which causes the creases like your example of tablecloth drop), then I have huge problem to deal with my hardware.
(I am using Intel Xeon 4 cores, 2.93GHz with 4GB RAM and running in Win7 in 64 bit but with Rhino 32 bit.)
(Roof geometry can be completely asymmetrical, so let’s assuming that we can’t array the resulting geometries!)
There are some discussions about how to increase the processing power of grasshopper:
http://www.grasshopper3d.com/forum/topics/is-there-a-plan-to-support-multicore-in-the-future
http://www.grasshopper3d.com/forum/topics/performance-of-grasshopper?
http://www.grasshopper3d.com/forum/topics/grasshopper-cpu-optimization
As I read that the GH is single threaded, we could over clocking the CPU + give lot of RAM.
I am curious if Kangaroo and other Apps are following the same performance-rule (single thread) like Rhino/ G.H? And what would be the key-feature to increase the power of Rhino/GH/Kangaroo in order to process the case I mentioned before (completely retractable roof)?
- Which level of CPU? Or constraint of CPU over clocking when necessary and capacity of RAM)
- How fine tuning my PC for best performance? (Parallel computing, c-flex…)
- is GPU a matter? (E.g. in Animation standard: Nvidia CUDA Quadro 4000+)
Or probably just a suggestion of workstation ;-)
Sorry I am not expertise of computer technical…
Thanks!
…
Added by Jon to Kangaroo at 3:31am on June 27, 2014
ake a network of lines (i.e. a graph) and make a Plankton Mesh, from which you can use Cytoskeleton to make a solid mesh (and then smooth it with Weaverbird).
Works with ngons (polygons with 3 or more sides). Other examples I found only worked with tris and quads.
Works on open or closed surfaces
While these examples start with a surface, you could start with a network of lines and make a patch surface
This is meant for 2D networks/surfaces. I haven't attempted filling a 3D volume. My guess is this wouldn't work as it would require a non-manifold mesh that Plankton wouldn't handle.
Note similar results could be achieved with the following:
TSplines
MeshDual (dual of a tri mesh, not as much freedom/control)
Working backwards, here is the GhPython script from Will Pearson that builds a Plankton Mesh from vertices and faces. The vertices are a list of 3D coordinates, the faces are a tree a lists, with each list containing the indices of vertices that form a closed loop. From Will, "Plankton only handles manifold meshes, i.e. meshes which have a front and a back. This orientation is determined by the "right-hand rule" i.e. if the vertices of a face are ordered counter-clockwise then the face normal will be out of the page/screen."
# V: list of Point3d # F: tree of int
import Grasshopper appdata = Grasshopper.Folders.DefaultAssemblyFolder
import clr clr.AddReferenceToFileAndPath(appdata + "Plankton.dll")
import Plankton
pmesh = Plankton.PlanktonMesh()
for pt in V: pmesh.Vertices.Add(pt.X, pt.Y, pt.Z)
for face in F.Branches: face = list(face)[:-1] pmesh.Faces.AddFace(face)
These vertices and faces are precisely the output from Starling. Starling takes in a list of Polylines which form the (properly oriented) face loops.
The polyline face loops can be generated...
Directly from Panels on a surface using LunchBox
Using any network of lines/curves on a surface (curves will need to be converted to polylines before Starling)
The latter was achieved using the Surface Split command, then converting the face edges (converted to curves) into polyline loops to represent faces.
…
). It deals with the potential possibility to port GH into AEC fields (real-life AEC fields, nothing to do with academic thinking). The bad news are that the smart AEC sector is occupied solely by Bentley/GenComp – expect soon Revit/Dynamo as well (not to mention CATIA). The good news are that there’s millions of designers/engineers/industrial designers out there who could be interested for a 3rd alternative.
Intro: Well, in the old days (when men had mustache and muttonchops) AEC design performed in a nice top-to-bottom sequence (kinda like a vector) : the Big Man (aka The Brain) did some sketches (with crayons) and the rest (known as the “others”) struggled to make The Idea a reality. Today things are different, mind. Or they should be different. Or may be different. Or whatever. The big easy:For a zillion o reasons (AEC matures, PLM, cost, outsourcing, sustainable engineering…add several more) this vector like process of the past is like a Brown motion these days: Right down the moment that you (or your team) “sketch” The Big Idea … another team design simultaneously (i.e. in parallel) the components (parts) that compose the whole. This is the so called bottom-to-top design mentality. So the whole and the parts meet in some "middle point" instead the later being dictated by the former. In quite a few occasions parts dictate the whole (cost, cost and cost being the main reasons). The more a design is contemporary the more this bottom-to-top thing plays a critical role. Ignore it and have a very big time (sooner or later).The bad news:If you accept the above…well GH – at present phase - is not ready for contemporary AEC work. At.All.3 Main reasons for that:1.You can’t use parametric parts (i.e. nested blocks to speak Rhino language) into a given definition (in this case attached : truss nodes, connection flanges, mount plates, cable tensioners, planar glazing components, roof skin components…etc etc). This is obviously a Rhino domain.2.You can’t bake a given solution in such a way that the Rhino file is structured (i.e. assemblies of nested blocks). Or you can do it theoretically writing some VB/C code – but the core of the matter is that corresponding components are MIA. That means that you can’t export anything useful actually into established AEC oriented apps and/or established MCAD apps (for doing/calculating the parts for real-life production).3.The GH process can’t being interrupted. Imagine defining, say, a building “envelope” in GH and then …er…use Evolute tools in order to optimize things (say quad planarization and the likes). Then …continue in GH for more detailed work. Then design the parts as in 1 above. Then back to Evolute. Then back to GH.So…if anyone is interested I would be glad to start the mother of all debates and/or some kind of crusade (GH for President, that is).PS: This definition is a WIP thing – more refined stuff to follow (in particular a complex canopy tubes pre-stress system).
PS: Tree8 components are used sporadically.
PS: Use Saved Views
May the Dark Force be with us.Best, Peter …
cálculos de otra manera imposibles de llevarse a cabo. La idea es mostrar una introducción a estos plugins explicando su funcionamiento general, ventajas y características con una serie de ejercicios prácticos a modo de ejemplo.
De esta manera se hará hincapié en conceptos muy presentes en el diseño e ingeniería avanzada: topología, form-finding, optimización estructural, fractales, loop, algoritmos genéticos y repetitivos, etc.
También, se dedicará un tiempo para sacar partido a tus definiciones y hacer más atractivo el diseño. Esto es, con una correcta exportación, animaciones, vistas...
ESTRUCTURA
- Geometría interactiva flexible
- Diseño generativo
- Reacción difusión
- Geometría desde parámetros ADN
- Visualización de estrategias generativas
- Simulación de crecimiento con sub-D
- Algoritmos generativos genéticos
- Técnicas de visualización
Los plugins que se verán asociados a estos conceptos son:
> Kangaroo: El plugin de Grasshopper más conocido y descargado que ya viene instalado en Grasshopper para Rhino 6. Es un motor físico que permite visualizar en tiempo real simulaciones interactivas y estrategias de form-finding.
> Galapagos: viene ya instalado con Grasshopper, es una plataforma que viene ya incluida en Grasshopper, para aplicar algoritmos evolutivos que se puede usar en situaciones y cálculos sin necesidad de conocer programación.
> Biomorpher: Muy parecido a Galapagos pero más sencillo y visual, Es un optimizador heurístico de cálculo de algoritmos evolutivos y genéticos, obteniendo la mejor solución en función de los parámetros o condiciones impuestos.
> Anemone: Usando algoritmos repetitivos, permite crear loops o estructuras secuenciales como los fractales.
También en función de la dinámica del curso se pueden ver otras apps como Weaverbird (subdivisión de mallas), Firefly, etc…
tly light vehicles such as bicycles and variations thereof. Although frame design is mostly of a structural nature, there are a number of elements that interact mechanically. Also, as you may be aware, bicycle and high grade tubing is not of constant section so shelling method in FEA is out of the question, but even so, because the joint needs to be modeled very accurately, that means different geometry and properties for welded area, heat affected area and base material; like so a simpler FEA package may not suffice.
I don't know karamba extensively, rather superficially, actually, but I'm under the impression it mostly deals with beam analysis. Pls correct me if I am under the wrong impression. I must say it would be very nice to have a complete FEA package inside GH really!!
Typical workflow for me would be to model everything in Solidworks, and then export to Ansys Mechanical. Although Ansys needs to read every input and naturally remesh back again, integration within Solidworks, Catia, Inventor, Creo, Solidthinking... and the sort, works reasonably well.
Now, I don't remember Ansys having a Rhinoceros plugin so that you could bridge the 2 together, but maybe I should go check again.
3) Great work with that fractal tree. It's nice to know it is a possibility at least. I have tried Apophysis and others, but to my knowledge there's not an application that could deliver 3D fractal designs in a way that you could further manipulate with conventional modelling techniques, maybe apply textures and render, or export to CAM, 3D printing... etc.
P.S.: I have tried all the apps mentioned above and then some more. All of them have serious limitations when it comes to parametric design. For complex models they crash plenty upon rebuilding... a number of time consuming errors appear, and general work flow isn't very efficient for purely parametric work. Speaking for myself, I'd rather spend the time on a definition that enables me to have full control and then generate a new result within seconds, than model everything very quickly and then taking a long time with each new result.
(Thanks for the replies and sorry for the long text, you asked to elaborate).…
All example files below are updated and compatible only with Wasp 0.1.0
Download it here: Food4Rhino
01_Basic_Aggregation
02_Multi_Part_Aggregation
03_Field_Driven_Aggregation
04_Part_Geometry_Rep
You can create Design Options using the Iris Layer component!
For each set of geometries that you create, you can assign a layer and define whether it will be visible or not in Virtual Reality on the
Added by IrisVR to IrisVR at 8:34am on January 23, 2017
bi-directional link, the link is unidirectional (downflow only), because of the use of proxies.
Matrix transforms and persistent constraints: I don't think this is true. The parts can have mates to other parts that preserve geometric relationships like 'coincident' , 'aligned' etc. These are essentially bi-directional. GH's algorithmic approach does not do relationships in the same / flexible way. In GH, the 'relationship' has to be part of the generation method that dependent on the creation sequence. I.e. draw line 2 perpendicularly from the end of point of line 1. If you are thinking about parts or assemblies sharing, or referencing parameters as part of the regen process, this is also possible. iLogic does this, and adds scripting. So does Catia. Inventor/iLogic can also access Excel and have all the parameter processing done centrally, if required.
Consequently, scripting the placement of components is irrelevant in GH, unless you decide that each component needs to be contained in its own separate file.
I wouldn't be too hasty here. Yes, you are right about compartmentalisation. I think this needs to happen with GH, in order to deal with scalability/everyday interoperability requirements. Confining projects to one script is not sustainable. MCAD apps have been doing this for ages with 'Relational Modeling'.The Adaptive Components placement example illustrates that it is beneficial to be able to script some 'hints' that can be used on placement of the component. Say, if your component requires points as inputs, then its should be able to find the nearest points to the cursor as it moves around. I think Aish's D# / DesignScript demo'd this kind of behaviour a few years ago. Similarly, Modo Toolpipe reminds me how a lot of UI based transactions can be captured as scripts (macro recorder etc). Allowing this input to be mixed in and/or extended by GH I think will yield a lot of 'modeling efficiency' around the edges. This is a (mis)using GH as an user-programmable 'jig' for placing/manipulating 'dumb' elements in Rhino. It may even give the 'dumb elements' a bit more 'intelligence' by leaving behind embedded attributes, like links to particular construction planes etc.Even if we confine ourselves to scripting. GH is a visual or graphic programming interface. A lot of 'insert and connect' tasks can be done more easily using graphic methods. If we need to select certain vertices on a mesh as inputs for, say, a facade panel, its going to be quicker to do this 'graphically' (like the AC example), then ferreting out the relevant indices in the data tree et al. The 'facade panel' script would then have some coding to filter/prompt the user as to what inputs were acceptable, and so on.
This also brings up the point that generating components and assemblies in MCAD is not as straightforward. In iParts and iAssemblies, each configuration needs to be generated as a "child" (the individual file needs to be created for each child) before those children can be used elsewhere.
Not sure what you mean here. If the i-parts are built up using sketches /profiles or other more rudimentary features (like Revits' profile/face etc family templates) then reuse should be fairly straight forward. I suppose you could make it like GH scripting, if you cut and paste or include script snippets that generate the desired Inventor features.
One of the reasons why the distributed file approach makes perfect sense in MCAD, is that in industry you deal with a finite set of objects. Generative tools are usually not a requirement. Most mechanical engineers, product engineers and machinists would never have any use for that.
I don't think this is true. Look at the automotive body design apps, which are mostly Catia based. All of the body parts are pretty much 'generative' and generated from splines, in a procedural way, using very similar approaches to GH. Or sheet metal design. It's not always about configuration of off-the-shelf items like bolts. And, the constraints manager is available to arbitrate which bit of script fires first, and your mundane workaday associative dimensions etc can update without getting run over by the DAG(s) :-)
…
whole design intent, but this is what Inventor is good at. The way it packages bits of 'scripted' components into 'little models' that can be stored and re-assembled is central to MCAD working.
The Inventor model shown is almost 5 years old. We don't model like that any more, however it does offer a good idea of general MCAD modeling approaches.
iParts is useful in certain situations, it could've been useful in the above model, its usefulness is often in function of the quantity of variants/configurations.
So much is scripted in GH, maybe it should also be possible to script/define/constrain/assist the placement/gluing of the results?
...
Starting point: I think we are talking across purposes. AFAIK, the solving sequence of GH's scripted components is fixed. It won't do circular dependencies... without a fight. The inter-component dependencies not 'managed' like constraints solvers do for MCAD apps.
Components and assemblies are individual files in MCAD.
Placement of these within assemblies in MCAD is a product of matrix transforms and persistent constraints. There is no bi-directional link, the link is unidirectional (downflow only), because of the use of proxies.
Consequently, scripting the placement of components is irrelevant in GH, unless you decide that each component needs to be contained in its own separate file.
This also brings up the point that generating components and assemblies in MCAD is not as straightforward. In iParts and iAssemblies, each configuration needs to be generated as a "child" (the individual file needs to be created for each child) before those children can be used elsewhere.
You notice the dilemma, if you generate 100 parts, and then you realize you only need 20, you've created 80 extra parts which you have no need for, thus generating wasteful data that may cause file management issues later on.
GH remains in a transient world, and when you decide to bake geometry (if you need to at all), you can do that in one Rhino file, and save it as the state of the design at that given moment. Very convenient for design, though unacceptable for most non-digital manufacturing methods, which greatly limits Rhino's use for manufacturing unless you combine it with an MCAD app.
One of the reasons why the distributed file approach makes perfect sense in MCAD, is that in industry you deal with a finite set of objects. Generative tools are usually not a requirement. Most mechanical engineers, product engineers and machinists would never have any use for that.
The other thing that MCAD apps like Inventor have, is the 'structured' interface that offers up all that setting out information like the coordinate systems, work planes, parameters etc in a concise fashion in the 'history tree'. This will translate into user speed. GH's canvas is a bit more freeform. I suppose the info is all there and linked, so a bit of re-jigging is easy. Also, see how T-Flex can even embed sliders and other parameter input boxes into the model itself. Pretty handy/fast to understand, which also means more speed.
True. As long as you keep the browser pane/specification tree organized and easy to query.
:)
Would love to understand what you did by sketching.
I'll start by showing what was done years ago in the Inventor model, and then share with you what I did in GH, but in another post.
Let's use one of the beams as an example:
We can isolate this component for clarity.
Notice that I've highlighted the sectional sketch with dimensions, and the point of reference, which is in relation to the CL of the column which the beam bears on. The orientation and location of the beam is already set by underlying geometry.
Here's a perspective view of the same:
The extent of the beam was also driven by reference geometry, 2 planes offset from the beam's XY plane, driven by parameters from another underlying file which serves as a parameter container:
Reference axes and points are present for all other components, here are some of them:
It starts getting cluttered if you see the reference planes as well:
Is I mentioned earlier, over time we've found better ways to define and associate geometry, parameters, manage design change, improving the efficiency of parametric models. But this model is a fair representation of a basic modeling approach, and since an Inventor-GH comparison is like comparing apples and oranges anyways, this model can be used to understand the differences and similarities, for those interested.
I haven't even gotten to your latest post yet, I will eventually.…
Added by Santiago Diaz at 10:36am on February 26, 2011