o use these extensions in order to integrate numerous tools for analysis and simulation in the architectural process.
This course aims to develop a link between the virtual and the real context model through structural or environmental simulations, using other software or plug-ins dedicated. Through this link the virtual model receives physical properties that can further modify and adapt the initial model. This creates feedback loops that can optimize the design to provide an object responsive to environmental conditions.
Curriculum
Mesh subdivision with Weaverbird, continuous surfaces without NURBS
Genetic optimization with Galapagos, optimal search
Physical environment feedback with Diva and Geco, solar and day lighting analysis
Adding physical properties with Kangaroo Physics, interactive form-finding
Linking the parametric model with structural analysis using Karamba, structural performance simulation
Extracting data with Firefly and Kinect, 3D scanning and human movement tracking
Exchange of information between Grasshopper and other applications with Ghowl links to internet feeds or Excel files.
Schedule:
Module 04 / Grasshopper intermediate & advanced (24 h)
11 Oct – 26 Oct 2013
Fri:
Sat:
16-20
10-14
Language: Romanian
Organized by:
OAR Bucureşti – Romanian Order of Architects, Bucharest Branch
Trainers:
Ionuț Anton, idz arhitectura (ART-Authorised Rhino Trainer)
Daniela Tănase, idz arhitectura (ART-Authorised Rhino Trainer)
https://www.facebook.com/cursurigrasshopperrhinoceros
http://www.oar-bucuresti.ro/anunturi/2013/02/27/d/…
Added by Dana Tanase at 2:49am on September 5, 2013
2013 | Sábados 19 y 26 de octubre. 15 Hrs.
Horario: 9:00 - 18:00 Hrs.
Instructores por BIO|Architecture Studio: A design & building laboratory.
Palabras clave:
Diseño Computacional, Scripting, Rhinoceros 5.0 + Grasshopper, Parametrización, Análisis, Fabricación Digital, 3D print.
Para mayor información:
MArch. Kathrin Schröter. E-mail: kschroter@itesm.mx
Dirección de Arquitectura. Oficinas de Aulas 1, segundo piso.
Carretera Lago de Guadalupe Km.3.5 Col. Margarita Maza de Juarez, Atizapan de Zaragoza. | 5864 55 55 Ext.5750.…
eated testing shows that it's just doing a Rhino Boolean Union internally, first, and thus fails whenever a normal Boolean fails, which is all the time if you have dozens or hundreds of bodies:
It's exactly the deal killer of failed Booleans that is driving my quest here, since using them ruined my original MeshMachine tension membrane relaxed modeling system, every time a casual user of it point edited a surface or a single sphere object until two faces nearly coincided and then the Boolean failed and it was hard to know where. This is totally robust, I believe.
$13K Materialise Magics has real Shrink Wrap which will wrap things nicely, and tightly, even perforated solids so it retains the holes, while closing off small gaps you can control the sensitivity to.
Microsoft has a rolling ball algorithm that does exactly what it sounds like it does, along the outside surface.
Once you have a fine mesh from my system, one offset by a fixed distance from each point, you could just offset the mesh inwards by that distance (after isolating it from the inner artifacts you can see on the left in green) and thus have a real hull, the need to smooth it to remove marching cube anti-aliasing affording some transition smoothing:
You could ramp up the number of points vastly, and set the radius of influence way down, to get a tighter initial result that would sharpen up even the transition, but this is pretty fast the way it is (1 second).…
merely automates finding clear intersections between pairs of objects and then splits the objects along those intersection *curves*, deletes the trims, then joins the remains, and cycles on. But within the confusing Rhino Settings tolerance value, wherever surfaces actually just sort of come closely together, there *is* *no* clear intersection curve. So it bugs out and stops working EVERY time you try more than a dozen or two spheres.
Some software can do this by switching to volumetric pixels (voxels). $9K-$30K Geomagic Freeform is an example of this. It also fails sometimes, often due to memory issues, as you can imagine since it needs to fill all inner space of each sphere definition with 3D pixels.
Materialize Magics for $16K can often handle such Booleans well. It will take a seeming lifetime to figure out such often pirate software kludges though.
One thing you can try though is to simply drape a mesh or NURBS plane onto the top of your spheres.
There's a well known *reason* your Booleans are failing. Nobody here has yet even hinted at it:
The main reason is that Rhino/Grasshopper developers don't care about the human element. The math exists to make this work very fast, every time. It just has to join things *right*, incorporating human knowledge of kissing surfaces, instead of acting stupidly, like some pocket calculator. But that would involve hacks that make 99% of complex Booleans work instead of 10%, and we can't have that since it will be SLOWER for the other 1% that just happen to have no nearly kissing or really kissing surfaces.
You could also use the new Cocoon plugin to do a surface *around* your structures, with a given radius of extension beyond the spheres, then offset that surface back the same radius. That is 100% robust, but won't offer quite as sharp of intersections, more rounded, like most everybody wants anyway.
You can *test* Boolean failures, by running a Grasshopper intersection command, to see the intersection curves, and zoom in to see how badly many of them are, all knotted, or twisted, or even with gaps, often with gaps.
It's a math problem nobody at McNeel wants to solve, sorry.
Just write a check for $25K and spend six months taking notes, like I did, and you can merge your simple spheres finally.…
Added by Nik Willmore at 6:33pm on October 20, 2015
sistance of radiative and convective heat transfer through the _filmCoefficient input on the "Create Therm Boundaries" component. This filmCoefficient in W/m2K represents the "U-Value" of the air film between the edge of the THERM materials and the surrounding environment that is at the specified _temperature. The extra resistance from this air film is why the full construction U-Value that you are getting out of THERM is a lower than just the (conductivity of material) / (depth of the material). Accounting for air films is particularly important when you get constructions that have a high overall conductivity (like a single pane window), since almost all of the resistance of such a construction is due to the air films.
To elaborate further, you might have noticed that, in the example files on hydra, I set this filmCoefficient to be either "indoor" or "outdoor", which basically uses some code that I wrote to autocalculate the film coefficient for you. I take into account both the emissivity of the material at the boundary (which gives you more air film resistance for lower emissivities) as well as the orientation of the boundary in the 3D space of the Rhino model. The code I wrote will take these parameters and match them to those published in ASHRAE Fundementals, which you can see in table 1 of the first page of this PDF:
http://edge.rit.edu/content/C09008/public/2009%20ASHRAE%20Handbook
I interpolate between these values in the event that your emissivity is not 0.05, 0.2, 0.9 or the orientation of your boundary is not any one of the 5 that they give.
I know that THERM also has the capability to actually run the radiative and convective formulas that you posted, Mauricio, as opposed to just using a single film coefficient to account for all of this resistance. The running of these formulas is particularly useful is the radiant temperature at the boundary is different than the air temperature. However, as long as you are ok with this assumption that the air and radiant temperatures are the same (which is the case for all of the situations that I have encountered), the film coefficient is perfectly sufficient. If anyone ever has need for this capability of running boundary conditions that have different radiant and air temperatures, please post here and I can think of a way to implement it. I rather like the simplicity of the current interface, though, and I think that I will keep it this way until we understand the purposes for why someone would need separate radiant and air temperatures.
-Chris…
would like to ask someone with patience, time and disposition for a definition of maximum displacement, resulting force of gravity and internal elastic energy. I know that these topics appear on the Karamba manual, however the explanation is quick and brief and I, and perhaps some others, can´t grasp completely what are they and how they work.
Secondly I would like to ask advice on how to deal the problem of minimizing the quantity of material used and keeping the structure strength in an acceptable range.
Those were my two questions. Now I am going to explain the definition that I am working on in order to show how this relates to the problem I am trying to solve.
I am trying to optimize a column made of plastic, which is intended to be fabricated in a 3D printer. I have created a grasshopper definition that lets me customize plenty of options (height, width, number of sides, number of divisions, type of interconnections, etc… ).
Image 1 can provide a quick look of what I am trying to do.
I am using galapagos to fine-tune some of the values in order to achieve the best possible structure that can withstand a certain arbitrary weight (for example 100 Kg) within acceptable deformation values and use the least possible material.
Perhaps the key values that I am letting Galapagos manipulate are the number of division in plan and section of the column.
The problem arises when I choose to optimize by minimizing the maximum displacement, which is the most common case in tutorials and examples.
Galapagos naturally tends to divide the column in the maximum number of section that I allow (which is logical since it creates more beams and minimizes their lenght), image 2 provides an example of the minimum and maximum number of division that I am allowing.
This solution (empirically) seems wasteful. I believe that the real solution to the problem (sustaining an arbitrary weight without failing and most importantly using the less possible material) must be between the two columns presented in image 2.
Thank you guys for your help and for reading such a long post.
Sincerely
Diego…
Scripting component for now. Having some trouble with data types/the IEnumerable interface, but I think I figured that out? Now the only errors I get are:
0. Error (CS0534): 'Script_Instance' does not implement inherited abstract member 'Grasshopper.Kernel.GH_ScriptInstance.InvokeRunScript(Grasshopper.Kernel.IGH_Component, object, int, System.Collections.Generic.List<object>, Grasshopper.Kernel.IGH_DataAccess)' (line 34)
1. Error (CS0115): 'Node2s.InvokeRunScript(Grasshopper.Kernel.IGH_Component, object, int, System.Collections.Generic.List<object>, Grasshopper.Kernel.IGH_DataAccess)': no suitable method found to override (line 121)
Any advice would be awesome! My component currently takes in two Point3d lists, one of source points and one of polyline endpoints.
Here's my code: (minus all the automatically-generated front/end matter)
private void RunScript(List<Point3d> pts, List<Point3d> x, ref object A)
{
var nodes = new Grasshopper.Kernel.Geometry.Node2List();
for (int i = 0; i < pts.Count; i++)
{
nodes.Append(new Grasshopper.Kernel.Geometry.Node2(pts[i].X, pts[i].Y));
}
var outline = new Node2s(Grasshopper.Kernel.Geometry.Node2);
for (int j = 0; j < x.Count; j++) {
outline.Add(x.X, x.Y);}
A = Grasshopper.Kernel.Geometry.Voronoi.Solver.Solve_BruteForce(nodes, outline);}
}
// <Custom additional code>
public class Node2s : IEnumerable<Grasshopper.Kernel.Geometry.Node2>
{
public List<Grasshopper.Kernel.Geometry.Node2> node2s;
public Node2s()
{
node2s = new List<Grasshopper.Kernel.GeometryBase.Node2>();
}
public void Add(int x, int y)
{
node2s.Add(new Grasshopper.Kernel.Geometry.Node2);
}
public IEnumerator<Grasshopper.Kernel.Geometry.Node2> GetEnumerator()
{
return node2s.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
// </Custom additional code>
}
…
ing curve vertically, taken the end points of my now two curves and built a surface from four points
D) Used the Surface to define a plane to which I am applying 3D text
C) Projected the resulting text back to the original surface.
It seems to be working OK, however:
1) It currently only sets the plane in X/Y - Z is always taken as real world Z (so cant project to horizontal surfaces) *note I tried dividing the surface and fitting a plane but the plane was waaaay offset from the surface; and
2) Subject to the way the surface is oriented, the text can be upside down/back to front and I have to fiddle with rotating planes to make it right (so it wont work to bake text onto multiple planes at once). See below:
Top row are letters i baked manually (adjusting angles as i went). Bottom row is all applied at the same time.
I wanted to cast out for suggestions on how I might be able to rectify this so that Z+ is automatically taken as 'up' but text can be applied to horizontal surfaced to - and 'In/Out' somehow be defined to make it easier to set which angle the text should be legible from.
Grasshopper script is attached. Any suggestions are welcome, I will have a crack and update progress as I go.
Note: I have used FabTools for creating and baking the text in the attached .GH.
Thanks
LJ…
edit 29/04/14 - Here is a new collection of more than 80 example files, organized by category:
KangarooExamples.zip
This zip is the most up to date collection of examples at the moment, and collects t
de modelación en 3D y aprovechen las ventajas que plantean, como mejorar su proceso de diseño y explorar múltiples alternativas para un proyecto en lapsos de tiempo muy reducidos en comparación de los métodos tradicionales.
En consecuencia, los alumnos tendrán la posibilidad de disminuir sus tiempos de trabajo, con resultados iguales o incluso mejores a los que obtenían con anterioridad; mejorar la calidad de sus presentaciones y, lo que es más importante, ampliar la fundamentación de sus proyectos en el aspecto funcional y formal, dependiendo de las características del proyecto.
Para lograr estos objetivos, se contemplan dos temarios y un ejercicio práctico.
Al finalizar el curso, los asistentes serán capaces de manejar Rhinoceros y Grasshopper en un nivel medio, con el objetivo que el alumno pueda continuar aprendiendo con alguno de nuestros siguientes workshops o de manera autodidacta.
Además del contenido teórico se incluye un ejercicio práctico, la magnitud del ejercicio y el material que se le destine se definirán con base en el número de asistentes.
El workshop tiene una duración de cinco sesiones:
Sesión 1 – Temario de Rhinoceros
Sesión 2 y 3 – Temario de Grasshopper
Sesión 4 y 5 – Ejercicio práctico
El horario es de 9 am a 4 pm, con una hora de receso para tomar un refrigerio.
No es necesario traer el equipo necesario para trabajar, se cuenta con un equipo para cada persona asi como el material de trabajo para el ejercicio práctico, por lo cual se les recomienda que no traigan portátiles u otro material, únicamente dispositivos de almacenamiento si desean guardar sus trabajos.
El costo del evento es de $3,500 estudiantes y $4,000 profesionales.
(Para poder tener el descuento de estudiante es necesaria una constancia de la universidad de la que proviene, acreditando que el interesado está cursando algún semestre de la carrera. Personas graduadas que estén cursando una maestría o algún grado superior no reciben el descuento).
Para apartar su lugar pueden realizar un depósito de $1,500 y terminar de efectuar el pago antes del 15 de abril si es mediante un depósito bancario o el primer día del evento en efectivo.
El evento se realizará en las oficinas de Vegasot, ubicadas en Circuito Cirujanos No. 23-A
Cd. Satélite, Naucalpan, Edo. de México 53100
http://www.vegasoft.com.mx
Para cualquier duda por favor escriban un correo a luzytextura@gmail.com, por teléfono al 044 55 4381 3302, o en facebook.com/archbernardorivera…