project below- should I be learning Grasshopper & Rhino or just Rhino first?
I'm trying to panel modules with low tolerances- I've prototyped regular shapes like geodesics and am now looking to experiment with irregular shapes with lots of different panel shapes.
I understand some things are best done through Grasshopper when using Paneling Tools- I'm trying to figure out if I can do what I want to achive with PT alone or should do it through Grasshopper (or some other route).
I’m on the MAC WIP - The module was built in Sketchup - all the components seem to be in order as blocks though am having problems running the ptpanel3dcustom command - thinking maybe a bug in the WIP or something wrong with my input or that I imported the sketchup file the wrong way. (I dropped it in the window) - If the 3D command is run it doesn’t do anything - if 2D (ptpanelgridcustom) it crashes.
The tileing pattern - the green rectangle is a refrence. each tile contains 4 blocks with 3 more nested in each.
How the module tiles.
The other thing I'm trying to do is specify that most of the lines in the panels don’t bend/curve when they are paneled (or something like Cage Edited). For my purposes the length & angles can change while the lines must remain straight.
These images show a test tile to be panneled on a ellipsoid. When the tile is mapped to the grid the lines curve, this is an extreme example but notice allot of tiles far from the hemespheres are also bent slightly.
These two questions have me stumped the most for now. What should I look into get a better handle on these problem areas? Maybe I should try recreating the work on a windows machine? or perhaps I should get started with Grasshopper?
Thanks for reading.
Lu…
mething? I think it would be very useful to have a mapping of light intensity over the field of view of the used camera, and possibly and option to overlay it on the luminance mapping. It would in a very visual way provide information about contrast and glare.
Doesn't the falsecolor option already do that for luminance mappings? If not can you post an image/screenshot of such a mapping from Dialux/AGI32 or any other software.
4. It's just a shoebox type simulation. 11x11 luminaires pointing down to simple materials. The default elapsed time was 3m40s. I have found the _RadParameters component meanwhile, and got it down to 0m30s. I have noticed that the simulation doesn't tax multiple cpu threads completely, most of the time cpu is at 25% during execution.
The under-utlization of CPUs is a known issue with Radiance (the calculation engine) on Windows based systems. Unfortunately there isn't much that can be done about it at the moment.
5. Is it possible to map different degrees of translucency, diffuse color, absorptance, reflectance, etc..., by means of a bitmap image, expression, or other?
6. There is a feature that I consider absolutely necessary (and I haven't found it yet), which is the emitting surface feature, with the ability to stipulate homogeneous intensity with luminance values (in cd/m^2) or flux; and by mapped distribution of intensities or luminances (in cd or cd/m^2).
By emitting surface I don't mean just a flat rectangular plane, such as an area light. It would be absolutely amazing! to perform photometric analysis on irregular and convoluted shapes and the light falling on neighbouring surfaces. 3DS Max with MentalRay provides similar functionality, but without the power of GH + HB.
In the image below, the HB logo is assigned as a texture to a glass which then creates a pattern of that on the wall when daylight falls on it.
ln the image below the light from the Batman logo illumninates the scene.
The images above were Rendered with Radiance. While these things are possible with Radiance, and therefore HB, the reason why they aren't incorporated into the code is that these effects are not "physically based" and are not rooted in reality. Radiance is arguably the most intensively tested and validated lighting simulation software in the world. However, once we start applying such "magic" to it, the results from it are no longer reliable and therefore no different from other photorealistic engines such as V-ray, Mental-Ray etc. …
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.…
.
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.
…
I understand.
I think honeybee and ladybug together are already a great design tool. I didn't realize the whole story with CFD and the various ways you have tried. Have a lot of respect for your project and your colleagues that are working on this, and I hope you guys get enough credit just going for it considering just how ambitious your project is. and open-source equivalence of at least 7 percent equity share too :) as in per owners. if you guys can offer 1 year cliff and 4 year vesting I will consider joining your team. just kidding what your team is doing are beyond me.
After checking simulation CFD 2015, I realized that one big advantage for LB+HB is that well, I didnt see a built in feature of taking account for direct solar gain as part of the simulation.
From the tutorials I have seen, they set the reference temperature to the exterior walls, but there is nothing solar. Here is a rather comprehensive video of how to set up for Simulation CFD . From 10:30 you can see that boundary condition for exterior walls is set with a film coefficient and Reference temperature (around 12:30). At 12:33, there is actually a parameter called radiation right below. I check the parameters for that myself and found that it includes emissivity and reference temperature but not watt hour per square meter like we have it with ladybug.
SO even for a software like simulation CFD, which already seems very sophisticated with the pay-as-you-go cloud parallel simulation option and all, I don't see that it is designed for simulating natural ventilation. Since with SIM CFD it seems that one can be precise about everything including heat plumes from artificial lights in terms of watts so I am guessing that there is a way to model in solar gain as some kind of projected geometry somehow but it is pretty clear that there is EXTRA WORK needed to factor in solar gain there.
I think it would be pretty major if there is a way to model solar radiation and CFD for interior/building envelop together because I have not seen that kind of simulation in the industry.
Thank you for the extra ref cayote and coolvent. I will make check them out along with SAM.
p.s. I reread what I wrote and just wanted clearify I sure didn't refer to any of your work with honeybee or ladybug as "artistic illustration." I meant my pretty arrows :)
…
’s mid-point and whose direction is perpendicular to that edge. The following images are a summary of how I’m currently doing this. Keep in mind that the shared edge is not always parallel with the x, y or z axis… in fact it usually isn’t.
This is the vector I'm trying to get...
This is my workflow:
1- Find centroids of surfaces...
2- Find mid point of the edge. The for each surface, create vector from mid point to centroid and also reverse the direction. Place a point at the end of each vector...
3-Test to see which of the two points for each surface is contained within each surface's boundary and select that point (this parsing is necessary in some cases depending on the shape of the surfaces)...
4-Here is the kicker. In cases where one or both surfaces are skewed, the centroid of that surface is not necessarily "perpendicular" to the mid point of the edges as evident here with surface B. So I create a plane (technically its a "frame") that is perpendicular to the edge...
5-I then pull both points to that plane...
6-From there its pretty straight forward as far as getting the required vector...
So is this the best way to do this. In particular I'm curious if there is an alternative to step 4, but really any comments are welcome.
Thanks,
cbass…
I miss DA.SetData the component gets null while taking the latency , on the other hand if use it the component has two kicks , is there anyway to get rid the first kick?
GH_Structure<IGH_Goo> D = new GH_Structure<IGH_Goo>(); GH_Structure<IGH_Goo> C = new GH_Structure<IGH_Goo>(); protected override void SolveInstance(IGH_DataAccess DA) { bool sw = false; int delay = 0; DA.GetData(1, ref delay); DA.GetData(2, ref sw); DA.GetDataTree(0, out D); DA.SetDataTree(0, C);
if (sw) C = D.Duplicate();
if (delay > 4)
base.OnPingDocument().ScheduleSolution(delay, cullback);
}
private void cullback(GH_Document doc) { var gate=base.Params.Output[0]; gate.ClearData(); gate.AddVolatileDataTree(C); foreach (IGH_Param i in gate.Recipients) i.ExpireSolution(false); }…
Added by Amin Bahrami at 12:00am on February 12, 2016