s to load from file (from 0 to 1)
So this post is about masks.
Rhino Point Clouds can store information such as : location of a point, it's color and normal vector. It is common to store intensity values, but it is not supported in Rhino.
Mask characters :
x y z - location
u v w - normal
r g b - color
a - intensity
Let's say that your file is formatted such as :
10.000 ; 12.000 ; 20.053 ; 0.243
which means it stores location and intensity values.
A proper mask will inform Load Cloud component how to read those values
x;y;z;a
The first non-alphabetic character in the mask is automatically interpreted as the separator.
Same masks work with Save Cloud component. Note that it has D input which when set to True will make it surround all the values in double-quotes.
"10.000" ; "12.000" ; "20.053" ; "0.243"
Cloud Load doesn't care about those double-quotes, it just ignores them and proceeds to read the values without them.…
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…
you may know, PCS (from now I will call polar coordinate system with PCS, and cartesian one with CCS) describes point position with 2 values (like x and y in CCS) which are r and theta(r,theta). r is for distance from PCS center, theta is angular dimension which is in 0 to 360 or 0 to 2*pi domain.
To hark back to David's guide line - here it is replaced with guide circle.
Why to sort points like this ? As usual, one image tells more...
Here is logic behind all this stuff :
Find an average point of all given points*
Search for furthest point from an average point*
Create a circle with center at average point and radius = distance from average point to furthest point*
*Steps 1-3 can be replaced with custom hand-made circle, I decided to automate it that way.
For each point find closest point on circle - this will be used for finding theta value
For each point find distance to average point - this is r value
To overcome problem with same theta (t) values (like same x values in CCS), instead of multiplying by 1000, we will use a new create set component. This component creates set of integers, each one representing one unique input value. So if points A, B, C, D, E are (r,theta) :
A (1, 30)
B (2, 30)
C (3, 30)
D (1, 45)
E (1, 60)
Then create set will output list of integers = 0,0,0,1,2 (same theta for A, B, C other theta for D and E). Now its getting really easy - remap r values to domain 0 to 0.5 (or any less then 1), and add integers from create set component to remapped r values.
7. So what we have now is list of floating point numbers : A=0, B=0.25, C=0.5, D=1, E=2
Profit of remapping is that r values will never affect integers representing theta values - and all the information is stored in one floating point number ! By sorting these values we will obtain proper order of points - to complete this, we need to sort points parallel with values.
What's really cool about polar sorting - there could be any amount of points, but polyline connecting all of them will never self-intersect. Probably there is some relation with 2d convex hull.…
.. then you put (or drill) rather "canonical" patterns that formulate the inner/outer skin (or both).
2. The above approach hits 3 walls: (a) very slow response (Rhino is a surface modeller) (b) booleans/fillets potential issues (Rhino is a surface modeller) (c) a potential aesthetic antithesis between the liberty of the "whole" VS the "strict" rules of the "details".
3. Since you opt to work with Rhino It could be worth considering playing his own game: deforming surfaces that is ... by working against control points or via the Morph methods. Then join them and get the decorative thingy as "solid".
Images below are from a C# that actually gets the control points of Surfaces in Lists and "deforms" them according a gazillion of options (a) via any "on-the-fly" defined pattern (Take or skip this control point: shift branches/items that is) (b) using any number of attractors in any push/pull mode (c) using chaotic vector values (d) using ... well too many ways to list them here.
Imagine what the Alien cuppa def does (modifies "diagonally" control points) ... multiplied by 1000.…
ices" which i found very intresting , I have your thesis and it will be the base of my futur work, I'm a graduate student in bioclimatic architecture and environment in Constantine -Algeria , I will prepare a thesis for my master degree in the theme of " parametric design, the dynamic envelope and intelligent façade" and really I need your help, if you can send me your work in grasshopper in(.ghx) mentioned in the "APPENDIX D SOLAR CONTROL VISUAL DEFINITION "(GRASSHOPPER),because i can't download it from the web site , I'm juste a beginner in grasshopper so I want to master the link between all the elements ,for this reason I would like to master your exemple in grasshopper as beginning , and I'll work with daylighting + thermal comfort in my thesis which is the continuity of your work, can you share your exemple with me please ? and why did you choose a 200 btu/ft² as a limits for direct normal irradiance , what is the formula ? I'm waiting for your response because it's so importante for my work , and i promise you , i will put your name in my references . thank you karla. the files needed are: the part which contains: 1-Solar Irradiance / TMY3 Excel Data (in grasshopper) 2-:Surface Geometry Analysis / Grid Pattern Selection (in grasshopper) 3-: Solar Profile Angles (in grasshopper)
4- Shading Geometry Profile Angles (in grasshopper) …
nputs to run (please refer to the image)
Currently, here is how I set the data:
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { //Create default size
double defaultBaySize = 0; pManager.AddTextParameter("LotLib", "Llib", "Lot Library", GH_ParamAccess.tree); pManager.AddCurveParameter("BoundaryCrv", "BC", "Boundary Input", GH_ParamAccess.list); pManager.AddIntegerParameter("Direction", "D", "Direction of gridLines", GH_ParamAccess.item, 0); pManager.AddNumberParameter("CCsize", "S", "Distance from column to column", GH_ParamAccess.item, defaultBaySize); pManager.AddCurveParameter("GridCrv", "GC", "Take in curves input for gridlines", GH_ParamAccess.list);
}
protected override void SolveInstance(IGH_DataAccess DA) {/* Setup */ GH_Structure<GH_String> LotLib = new GH_Structure<GH_String>(); DA.GetDataTree(0, out LotLib); List<Curve> BoundaryCrv = new List<Curve>(); if(!DA.GetDataList(1, BoundaryCrv)) { return; } int Direction = 0; DA.GetData(2, ref Direction); double CCsize = 0; DA.GetData(3, ref CCsize);
List<Curve> GridCrvs = new List<Curve>(); DA.GetDataList(4, GridCrvs); if (!DA.GetDataList(4, GridCrvs)) { return; }}
Is there a way can set data in the way if the component does not receive inputs for BoundaryCrv but only GridCrvs, the BoundaryCrv List will empty.
Thank you very much …
to panelize & planerize in Grasshopper using the Kangaroo plug-in.
I’d like the “funnels” to taper upwards from a small base circle to a larger square. The problem is very similar to the one tackled in another post:http://www.grasshopper3d.com/forum/topics/how-to-get-continuous-panels
So far I have simply attempted to apply the tutorial at the address below to my surface…which resulted in a wild simulation where no equilibrium was reached. I’ve played around with tolerances but to no avail.
Going forward I have some very broad questions:
1. Quite simply; how would you experienced types recommend I model the initial funnel? (Revolution surface? Mesh? Successive lofts?…)
2. Would you recommend paneling with a particular shape? Maybe it is my choice of working with only hexagons that is geometrically instable?
3. Would you apply a different technique than that used in the tutorial below, or simply change some elements? I’ve heard that the Weaverbird plug-in can be useful for use with Kangaroo for this sort of problem?
Tutorial followed: “How to create planar Honeycomb Shells using Kangaroo´s Planarization Forces” by ThinkParametric https://www.youtube.com/watch?v=MsbyfC2usUk
Thanks in advance for any feedback!…
uest Tutors: Olga Kovrikova (AL_TU), Alexandr Kalachev (AL_TU), Tudor Cosmatu (AL_TU)
Materialized Algorithm - Digital Tectonics workshop focuses on finding an appropriate design algorithm by implementing and embedding the material qualities into the design process.
Through the Rhino software tutorials, participants will get a short introduction to the nurbs-surface modeling techniques, which will be further used as a basis for form-finding and component development.
Grasshopper is a graphical algorithm editor tightly integrated with Rhino’s 3-D modeling tools which requires no specialized knowledge of programming or scripting. Sinceits existence it has been helping more and more professional designers to understand and use parametric modeling techniques. This workshop will start with the basic operation of Grasshopper integrating specific examples (Kangaroo, KingKong) which will help develop the concepts into built proposals.
Participants will have to start designing with physical models, creating a constant feedback loop between the physical and digital world allowing for the creation of differentiation and achievement of the desired geometric complexity. Finally a number of maximum two projects will be thoroughly developed and built.
For more information visit:
http://zhan.renren.com/damlab?gid=3674946092080649725&checked=true…
Added by Tudor Cosmatu at 12:28pm on August 28, 2013