t. So here we go!
1. Honeybee is brown and not yellow [stupid!]...
As you probably remember Honeybee logo was initially yellow because of my ignorance about Honeybees. With the help of our Honeybee expert, Michalina, now the color is corrected. I promised her to update everyone about this. Below are photos of her working on the honeybee logo and the results of her study.
If you think I'm exaggerating by calling her a honeybee expert you better watch this video:
Thank you Michalina for the great work! :). I corrected the colors. No yellow anymore. The only yellow arrows represent sun rays and not the honeybee!
2. Yellow or brown, W[here]TH Honeybee is?
I know. It has been a long time after I posted the initial video and it is not fun at all to wait for a long time. Here is the good news. If you are following the Facebook page you probably now that the Daylighting components are almost ready.
Couple of friends from Grasshopper community and RADIANCE community has been helping me with testing/debugging the components. I still think/hope to release the daylighting components at some point in January before Ladybug gets one year old.
There have been multiple changes. I finally feel that the current version of Honeybee is simple enough for non-expert users to start running initial studies and flexible enough for advanced users to run advanced studies. I will post a video soon and walk you through different components.
I think I still need more time to modify the energy simulation components so they are not going to be part of the next release. Unfortunately, there are so many ways to set up and run a wrong energy simulation and I really don’t want to add one new GIGO app to the world of simulation. We already have enough of that. Moreover I’m still not quite happy with the workflow. Please bear with me for few more months and then we can all celebrate!
I recently tested the idea of connecting Grasshopper to OpenStudio by using OpenStudio API successfully. If nothing else, I really want to release the EnergyPlus components so I can concentrate on Grasshopper > OpenStudio development which I personally think is the best approach.
3. What about wind analysis?
I have been asked multiple times that if Ladybug will have a component for wind study. The short answer is YES! I have been working with EFRI-PULSE project during the last year to develop a free and open source web-based CFD simulation platform for outdoor analysis.
We had a very good progress so far and our rockstar Stefan recently presented the results of the work at the American Physical Society’s 66th annual DFD meeting and the results looks pretty convincing in comparison to measured data. Here is an image from the presentation. All the credits go to Stefan Gracik and EFRI-PULSE project.
The project will go live at some point next year and after that I will release the Butterfly which will let you prepare the model for the CFD simulation and send it to EFRI-PULSE project. I haven’t tried to run the simulations locally yet but I’m considering that as a further development. Here is how the component and the logo looks like right now.
4. Teaching resources
It has been almost 11 months from the first public release of Ladybug. I know that I didn't do a good job in providing enough tutorials/teaching materials and I know that I won’t be able to put something comprehensive together soon.
Fortunately, ladybug has been flying in multiple schools during the last year. Several design, engineering and consultant firms are using it and it has been thought in several workshops. As I checked with multiple of you, almost everyone told me that they will be happy to share their teaching materials; hence I started the teaching resources page. Please share your materials on the page. They can be in any format and any language. Thanks in advance!
I hope you enjoyed/are enjoying/will enjoy the longest night of the year. Happy Yalda!
Cheers,
-Mostapha
…
a modélisation paramétrique avec Grasshopper pour Rhinoceros3D ainsi que démontrer plusieurs façons de l’appliquer à votre travail architectural.
Cette formation est conçue comme une expérience augmentée autour de l’architecture paramétrique et elle comprend aussi :
+ Une introduction au design paramétrique par Francesco Cingolani+ Une étude de cas d’un projet de l’agence de l’agence HDA Hugh Dutton Associés+ Acces gratuit 3 journées à l’espace de coworking SUPERBELLEVILLE
INSTRUCTEURS
FRANCESCO CINGOLANI . designer, enseignant en architecture paramétrique, co-fondateur deSUPERBELLEVILLE coworking, collaborateur de l’agence Hugh Dutton Associés. – voir le profil Linked-in
ŞULE ERTÜRK . Architecte diplômée de l’Université Yildiz Teknik à Istanbul, Master en architecture paramétrique, travaille actuellement aux Ateliers Jean Nouvel dans le département 3D. - voir le profil Linked-in
QUENTIN GAUCHER . Architecte DE-HMONP, diplômé de l’ENSA Paris La Villette, intervenant en architecture paramétrique sur divers projets - voir le profil Linked-in
DATES 25 mars 2013 . Annonce de la formation / Début des inscriptions5 avril 2013 . Fin des inscriptions13 – 14 avril 2013 . Formation
HORAIRES Samedi et Dimanche 13 et 14 avril . 10:00 > 13:00 – 14:00 > 19:00Total : 16 heures
TARIF700 € professionnels400 € étudiants
RÈGLEMENT50% est à régler lors de l’inscription (au plus tard le 5 avril)50% au début de la formation.Les règlements s’effectuent par carte bancaire via Paypal ou par virement bancaire.
NOMBRE DE PARTICIPANTSMinimum pour l’activation de la formation : 5Maximum : 7
CONTACTInscriptions et réglements : fr.cingolani@gmail.com . SUPERBELLEVILLE coworkingInformations : quentin.gaucher@gmail.comimmaginoteca.com/grasshopper
EN BONUSLe café italien et les plats faits maison de Claudia offerts aux participants :)…
pproach that will hopefully work. There's still the last part of putting it all together, but I figured I'd post my progress so you could play around with it if you wanted. This is kind of a lucky situation since its only single face breps and simple trims that are being worked with.
I've attached 3 definitions to this post. The first is my reorganization of your original definition, which creates the surfaces from the point grid and culls out any surfaces that are not "on" the surface so that we don't have to deal with them later down the line. This is done through a small VB component which determines whether any of the corner points lie on the surface. If it does it keeps the surface, if not, then it doesn't. The only issue with this is that in your example file, there are some surfaces which the corner points do not lie on the surface, yet the surface that they create spans the underlying surface. At this point I'm not worrying about those. You mentioned that you only want the surfaces that lie at the edge...this can be done by testing whether all 4 corner points lie on the trimmed surface or not.
The second definition is a coded version of the project function. In the example it will project to all the breps supplied, yet in the final version this probably won't be desired. Also, the direction (z axis) is hard code...this could be swapped out if desired.
The third definition is an shot at trimming a surface with an input curve (that curve happens to be projected). I tried this many ways, but found that the function RhinoCutUpSurface seamed to work alright. The other attempts at doing this directly with through functions available for OnBrep were unsuccessful and very complex. Luckily because the underlying brep is an single, untrimmed surface this function works well for us, but in situations where we have a trimmed or multiface brep we'd be up a creek with out a paddle. The function creates an array of breps, but in our case it will create essentially the same surface split by our curve and joined together as a single brep with two (possibly more) faces. All we have to do is find out which face we want to keep and duplicate that into a separate brep and pass it out of the component. In the example file I'm determining which on to keep based off of the distance from a test point to the centroid of each face.
The other option here, which would trump the need for projection or trimming, would be to extrude the edge curves through the surface in question, and use the BrepSplit function which requires two breps. There would still be the need to sort out what to keep, but if this approach were used, all the split pieces would be separate breps.
So, all the pieces are pretty much working separately, all that I have left to do is put them all together in the base definition. The only thing that is really the hump with that is determining exactly which face to keep. My idea at the moment is to find out which corner of the surface does not like on the base surface and use that to determine which face will be thrown out. This might be one of the easier ways, but will not be rock solid. The other option is to pull a test point that's on one of the faces to the base surface and the other face, then use the distance from test point to the point on the base surface and the distance to the pulled point on the other face to the base surface to figure out which one to keep.
As to sectioning off parts of the solution, you could do this in a number of ways, but here's two simple ones. In a scripting component just add a boolean value to the inputs and put the whole script inside of an if statement that looks at that boolean value. With components just add a boolean gate or a null pattern componet anywhere you want in the stream. Again, hook in a boolean toggle value, and that will stop the info from going to components that are downstream.…
s: [Mesh Brep] which used the Rhino mesher, [Mesh Surface] which create a rectangular grid of mesh faces on a single surface and [Simple Mesh] which attempts to represent each face in a Brep using a single Tri or Quad and accuracy be damned. Let's focus on the easy ones first...
[Simple Mesh] is a first attempt at providing a completely reductionist meshing engine. It was born out of a skype discussion I had with Brian James one night during the weekly Seattle RMA developer meeting. It only handles very simple cases at the moment so it's probably not all that useful, but it's there anyway just in case. If this mesher cannot handle a certain Brep face because it's too complicated it will use the native Rhino mesher for that face.
The purpose of [Mesh Surface] is to provide a single surface mesh that isn't distorted by the underlying parameterization of a surface. My approach for this actually turned out to be really slow, which is why the [Q] input is set to false by default. This mesher was never designed to take trims into account, however you get a single option [H] to control how trims interact with the mesh.
[Mesh Brep] merely channels the native Rhino mesher. You can supply meshing settings that look a little bit like the meshing settings that Rhino itself exposes. With these settings you can control how seams in breps are handled, how much the mesh is allowed to deviate from the underlying geometry, how many quads you want etc. This is the most customizable option, but even here it's totally possible you can't get what you want. For example, there is no way to enforce a mesh that contains only quads. As soon as seams are stitched or whenever trims are present, you're going to get triangles along the edges of meshes.
--
David Rutten
david@mcneel.com…
.
as you can see I devided it into 3 parts.
part1: when I try to connect the new shape to the rest of your definition,the plan z,which gives the panels individually when baked(so I can work them individually)doesn't work,apparently there is something missing when I want to explode it.
that is why I connected it to the definition that I already had(part2)( the only cool part about that one is the attractor point)well it kind works,but not really(if you zoom in you can see that there are some parts overlapped and really not looking good).however I much rather your definition because of the option it gives me to work with individual panels when baked(planz).
however it's around 4 am. and I have decided to make some major changes in design (to prepare some closed and open space,I'm talking about part3 that works with the fibonacci like shape,I know it doesnt look really good,but seriously 4am.!).the major problem is that I tried to make a form like that with kangaroo so the shape would be smoother but I wasnt really able to make it with kangaroo,that's why I made it manually in rhino.I was wondering if you can help me make something like this ( not exacly like this) with kangaroo or (if impossible to be made with kangaroo)even helping me optimizing it so it doesnt look as bad,as you can see when I try to work the grasshopper definition on this shape,it gives me different panel sizes for each surface and all of them are to small compared with the overall size of the so-called pavillion(give it 200-500 sq feet (20-50 sq.m).and any suggestions about the shape would be appreciated,please forgive my basic knowledge of rhino and grasshopper,and let's say I wanted to make a shape like these(don't laugh please!)
u promised not to laugh!!!
please help me find the right way!
…
a reply.
Q1. I run two generations in my generation 0 I can distinguish 3 lines...what do they refer to? I got my Fitness as 5 values Heating, Cooling etc and thought there will be 5 lines
Q2. What are values on X/Y/Z axis and color legend? What colors means I got black 409.87 and red 33.63 amd tis dot 99.2:5 and green 2.27:4?
Q3. I can see that in every generation my values are condensed ...of course I shall run this for many more generations... but as result of my simulation which is minimize energy will be the last one that head down?
Q4. I was reading this forum and there is no current way of savings all results for each run ?
Q5. If there are some any general advice how I shall tackle my problem this would be great!
Ps. I will try to run this example over the weekend to see what is the result.
…
lName, signalValue, operationMode):
sigV=signalValue
if sys.version_info[0] == 3:
if type(signalName) is str:
signalName=signalName.encode('utf-8')
if type(signalValue) is bytearray:
sigV = (ct.c_ubyte*len(signalValue))(*signalValue)
if type(signalValue) is str:
signalValue=signalValue.encode('utf-8')
sigV = (ct.c_ubyte*len(signalValue))(*signalValue)
else:
if type(signalValue) is bytearray:
sigV = (ct.c_ubyte*len(signalValue))(*signalValue)
if type(signalValue) is str:
signalValue=bytearray(signalValue)#<========This is line 1052
sigV = (ct.c_ubyte*len(signalValue))(*signalValue)
sigV=ct.cast(sigV,ct.POINTER(ct.c_ubyte)) # IronPython needs this
return c_WriteStringStream(clientID, signalName, sigV, len(signalValue), operationMode)
It displays the following error:
Program started
Connected to remote API server
Runtime error (TypeErrorException): unicode argument without an encoding
Traceback:
line 1052, in simxWriteStringStream, "C:\Program Files (x86)\V-REP3\V-REP_PRO_EDU\programming\remoteApiBindings\python\python\vrep.py"
line 70, in script
Any hint?…
are hotter than the least overlapped parts.
I'm trying to create gradients when overlapping between closed surfaces occur. The gradient goes from the center of the most overlapped figure to the edges of the least overlapped figures.
To help understand how I'm thinking it, I will first show you my solution for one figure.
As I said in the title, it's kind of a pseudo gradient. It's a way of organising areas (rings) inside of the geometry. To achieve this I thought in creating a series of rays that then can be divided in segments, in this case 3 segments of same lenght per ray, I could get more resolution in the gradient by dividing in more thus creating more rings...
in this picture the rays are in dark red and go from the center to 4 points in the perimeter, if I wanted more resolution I could have more rays, but with this simple figure 4 is enough
the rings are in a gradient of colors from the center to the perimeter, lighter in color each time:
so when I have 2 overlapping geometries
the center of the gradient should be on the center of the most overlapped part (in red) and go to the perimeter of the pink parts
for the red figure I draw the rays from the center to its perimetry. and for the pink figures the gradient should go from the parts that are in contact with the red figure to the perimeter, something like this:
still that is something I did with rhino and it's pretty intuitive...
the problem gets worse when i have more figures and more "heat centers"
like in these examples
maybe the approach should not be with rays to create the rings... maybe with offsets..
not sure if it's not too complicated to achieve in grasshopper and maybe there's another way of creating a gradient with multiple focuses...
would aprecciate any help
cheers…
x geometry which will be the basis in plan for a building facade. The problem is as follows:
I am generating a series of arcs using 3 different ranges for radii. Each segment of the geometry is assigned one of the radii. The length of each arc segment is controlled by a specific number, also within a range -- the end goal is to divide this geometry into perfectly equal segments.
(Parameter Ranges)
I am building these arcs in such a way that they are tied to the arc drawn before it - meaning that as the length of the previous arc is adjusted, the arc in question will still begin where the previous arc ends, and be tangent from said previous arc.
This approach works well until I get to the final segment of the form. I want to be able to close the form in a way that the final arc both meets the first arc at its tangent point and is a length divisible by the desired segment length.
Through a series of trial and error by means of adjusting the radii, panel size, and arc lengths, I have been able to get the geometry to being very close to closed, but there is always some sort of remainder, or the last arc is not tangent to the first arc.
My thought is that this would be a perfect scenario to use Galapagos, but my attempts to do so have resulted in an almost immediate crash of rhino. I'm not sure if I'm feeding too many inputs into galapagos (the radii ranges and segment length ranges), or that the number I'm telling it to minimize is incorrect (distance between the end of the final segment and the start of the first segment), or if there is a larger issue with the definition I've written, but I haven't been able to figure out the issue.
Are there any thoughts out there on how I might be able to reach a possible solution? Or at the very least is there any precedent for a geometric shape similar to what I am trying to create which follows the same number of parameters I'm using?
I've attached the GH definition as well as a rhino model for your visual reference. To preview the GH form in rhino, simply assign the only curve in the attached rhino model to the crv node in grasshopper:
This simply locates everything that's being generated in grasshopper in space in rhino.
Thanks in advance for any thoughts, and also apologies for a somewhat potentially messy definition.
…
Added by Ray LeChase at 11:12am on August 31, 2016