curves A and B.
For each point pA on curve A,
you need the corresponding tangent vector tA on curve A, and the lists of "cone" vectors pB(j)-pA and tangent vectors tB(j) on curve B. so you have three vectors tA, tB(j) and AB(j)
these three vectors define a parallelogram thas varies along j
3d determinant of the three vectors above gives you the volume of this parallelogram. When 3dDet = 0 then it means it's flat, the vectors are coplanar. Thats what we're looking for.
So you just need to plot the curve 3Ddet = f(pB) , still for each point on A
'pB is the parameter here'
graphically solve these cuves to find the zeros and you feed back the resulting parameter in curve B. draw te line, done.
You can manage double solutions or cusps directly on the plot by using clostest point and >= conditions to kill unwanted results.
I do it twice, from crv A to crrv B and from B to A to make sure I catch start and end generatrices each time.
The videos you posted are interesting. I don't understand how it works with just 2 slider to tune the curves.
…
as passing this extra check and because of that it was running faster. It doesn't mean that the first analysis is totally wrong as it depends on the analysis case and should be checked and optimized before running the final analysis.
You can read more about radiance parameters here (http://radsite.lbl.gov/radiance/refer/Notes/rpict_options.html), and here (http://radiance-online.org/community/workshops/2011-berkeley-ca/pre...). Since you have a light-shelf I suggest you to add to the number of ambient bounces (ab).
Now back to your wish to have the analysis run faster you can comment the line hb_writeRADAUX.checkInputParametersForGridBasedAnalysis() inside Honeybee_runDaylightSimulation and it won't overwrite the initial values but make sure that you run a number of test cases and compare the results between the runs.
Back to your definition, it looks good to me. You could have saved yourself some time by using MassToZone component and then just adding the ceiling separately but there's nothing wrong with your approach.
The main place in the definition that can change is how you're generating the vertical fins. I imagine you can use a single set of components to generate every group of the fins but again your definition will work.
I updated your file to the latest version, which means you also need to update Honeybee and Ladybug in case you're looking to modify the file.
Hope it helps,
Mostapha…
ky.exe did not accept -p parameter and made empty sky.cal file.
----
Edit: solved run problem, Bee did not download OpenStudioMasterTemplate.idf
Get it here: https://github.com/mostaphaRoudsari/Honeybee/issues/119
Now get empty HDR:
C:\ladybug\prox\imageBasedSimulation>rpict -i -t 10 -vtv -vp 245.129 -226.458 20 0.405 -vd -0.549 0.656 -0.518 -vu -0.332 0.397 0.855 -vh 42.862 -vv 26.991 -v l 0 -vs 0 -vl 0 -x 800 -y 600 -af prox_RAD_Perspective.amb -ps 8 -pt 0.15 -pj 0.6 -dj 0 -ds 0.5 -dt 0.5 -dc 0.25 -dr 0 -dp 64 -st 0.85 -ab 2 -ad 1024 -as 175 -ar 150 -aa 0.200 -lr 4 -lw 0.050 -av 0 0 0 prox_RAD.oct 1>prox_RAD_Perspectiv e.unf rpict: 0 rays, 0.00% after 0.0000 hours rpict: skybright`c__ladybug_skylib_cumulativeSkies_SINGAPORE_SGP_SINGAPORE_SGP_1 : undefined variable rpict: 1020 rays, 4.91% after 0.0000 hours
----
Hi friends,
trying to get a cumulative sky image metric to run and encountered an issue with the image-based metrics component. It throws:
Runtime error (KeyNotFoundException): honeybee_materialLib Traceback: line 768, in main, "<string>" line 1442, in script
I guess this is some sort of setup issue on my end, or I messed up the definition? Any help appreciated.
Thanks,
Max
…
ace when I start running Galapagos/Octopus (below is "room orientation optimization" shared at http://hydrashare.github.io/hydra/viewer?owner=mostaphaRoudsari&fork=hydra_1&id=Room_Orientation_Optimization&slide=0&scale=1&offset=0,0) It may take quite some time to see some results. That's fine for the above simulation. But my real challenge is, when I am going to optimize room dimension with respect to ASE and sDA calculations, either Galapagos or Octopus goes wildly and never come up with a solution. I believe the time-consuming calculation, especially sDA with higher -ab numbers, trigger the lag a lot? Any suggestion/trick to improve it?
Most importantly, based on your experience, for example to optimize window/exterior shades sizes and achieve ASE<10% and sDA>55% (LEED v.4 requirements), Octopus (due to its capacity of multiple objectives) is the only choice? Any other approaches within grasshopper?
The alternative approach in my mind as a GH beginner is as follows. But I am not sure whether it is doable. Again, your comments will be greatly appreciated.
Since all my room/window/shades dimension are controlled by number sliders, I am thinking whether a component from GH will trigger these number sliders (not necessary to be all of them but one by one) automatically. If this is possible, I can do "data recorder" to record outputs from ASE and sDA. Eventually I will have a database of the input parameters and sDA/ASE results.
Does it make sense? Is there a component which can trigger number slider output at certain step?
Many thank!
Cheney …
you working on a PV system which will power a domestic hot water boiler?
To answer your questions:1) Each grasshopper component (ghpython being one of those too) is using grasshopper's data matching algorithm. This algorithm takes care of complex issues which may arise from combining lists with single items, data trees with different number of items per branch and so on.I think there is a way of introducing a call to other processor's threads per each inputted surface, but this will be a very difficult job, as it will require writing a custom data matching algorithm. I do not think I am up to that task.Instead I tried to introduce the multithread only to the final part of the PVsurface component and one of its time consuming parts: calculation of sun angles, solar radiation and ac/dc power output.I attached the test file below, but sadly it didn't go well: the multithreaded version mostly runs at the same time as the regular version.I do not think I am qualified enough to answer why is that so, but I think that it may have something to do with the type of the function that the multithreading is applied to: the code is suppose to run few separate functions a couple of thousand times, and work with a couple of lists. From my experience, the multithreading works the best when a single list or two are supplied to a single function. I may be wrong on this.I am very sorry to say that I can not implement this feature.2) I am not familiar if open source PV modules database has been released.But one can always download the data for specific modules from producers websites. It can then easily be transferred to a .csv file or other text file.Ladybug Photovoltaics are based on NREL's PVWatts model.In comparison with other commercial software applications, PVWatts offers a more generalized system model, with some of the values and characteristics being assumed or embedded.The Fuentes empirical thermal model we are currently using follows the same logic: it generalizes the Module characteristics. The following characteristics are only editable: module efficiency, temperature coefficient and module mount type.It may be possible to replace Fuentes with some other, less generalized 5 parameter thermal model. But as an architect, I would definitively need help on this.
Sorry if my reply did not fulfill your expectations, and thank you for the kind words!…
r graphics get saved as 24x24 pixel images before they are put into the grasshopper application, which means the icons look like crap when you zoom in. This is the aforementioned problem that needs to be addressed in GH2. There have historically been two approaches to this issue:
Provide pixel images with several sizes.
Render vector graphics directly.
Option 1 is common for apps that do not have variable levels of zoom, such as Windows Explorer. When explorer shows file icons it either shows them in 16x16, 32x32, 48x48, 96x96, or these days, various HUGE sizes. As a result *.ico files allow you put in different images for all these target sizes. Since Grasshopper has variable zoom levels, this is not an ideal solution. Also, it requires a lot more work per icon.
Option 2 is becoming more and more popular as increased graphics speed now allows for the real-time rendering of vector graphics. Yet, you still need a renderer that knows how to draw vector geometry crisply at low sizes. All vector renderers I know just interpolate the geometry linearly and if a line happens to end up 'between pixels' it's just fuzzy.
I don't have hard and fast rules for the icons, but I try to adhere to at least these:
Keep a border of 2 pixels free around the icon content. So basically only use the inner 20x20 pixels rather than the 24x24 you're allowed. This is needed because the drop shadow needs to go there.
Only draw silhouette edges around shapes, not inner creases. Typically a 1-pixel line will do. I prefer to use a dark version of the fill colour rather than black for edges.
Loose curves can be drawn in 1 or 2 pixel thicknesses, depending on how important the curve is.
Try to avoid text in your icons (not always possible).
Stick to 1 colour family per icon, preferably per icon family. You can add highlights with another colour if you must, but too many hues make an icon hard to read (for the example the [Voronoi] icon, it has red, green and blue and it's a bit of a mess, on the other hand [Colour Wheel] has the full spectrum and seems to work quite well...).
Very roughly speaking, if there's both black and red geometry in an icon, it means the red is component input and the black is component output.
Drop shadows are pixel effects, applied to the 24x24 image. They have a blurring radius of 2 pixels, a horizontal offset of 1 pixel to the right, a vertical offset of 1 pixel to the bottom and they are 65% black.
When you use high contrast shapes (for example black edges on a light background) the anti-aliasing provided by vector renderers such as Xara or Illustrator won't be enough to make it look smooth. I'd recommend avoiding high contrast if at all possible, but if not possible then draw a 1-pixel line around the dark bits in 95% transparent black. This effectively extends the anti-aliasing range from 1.5 to 2.5 pixels and it helps make things looks smoother.
--
David Rutten
david@mcneel.com…
s levels of detail by subdividing a 6 sided cube mesh and projecting its vertices according to a referenced height map. This is one of the standard conventions for building full sizes planets. At the lowest level (0) the mesh planet is made of 6 pieces(each 32x32 resolution). The next level down (1) is made of 24 pieces... 6 divided by 4 = 24. Level (2) is 96 quads etc etc. The script will generate each quad at its sub-division level and compare edge vertices to neighboring quads. It will then make sure any shared vertices are in fact at the same projected vector. This ensures a planet quad with edge vertices that match.
The problems comes in texturing each quad.
If I build the quad as a nurb surface from points I can place the texture easily because each surface UV maps squarely to my texture map (which is also square).
If I build the quad as a mesh I cannot just apply the square texture to the mesh UVs. This is because when you unwrap the UVs from a mesh they will not unwrap like a nurb surface's UVs. Therefore to get the correct mapping I would have to manipulate each UV back to an evenly aligned array (which is 1024 points in a 32x32 resolution UV). Maya and blender have 'relax uv' and 'align UV' functions but they don't do the trick and manual corrections are out of the question. So why not skip the mesh method and use the nurb method?
I did this and there is a trade off. The nurb will accept the material texture I want with no other work on my end but when I export the object as an .obj rhino creates its own mesh to describe the nurb(with various unsatisfactory setting options). This works great up to a point because at some level the interpreted mesh will have vertices that do no match at the edges, ie .. creating visible seams in the mesh. The picture below is the nearly seamless planet at LOD(1) made of 24 quads, each with 32x32 vertice resolution and a 512x512 jpg texture running in Unity3d 5. It works but at close level there are seams. This will be resolved simply by having the next LOD(x) instantiate before getting close enough to see the seam but at core nerd level I want the seamless mesh.
So, I can make the seamless mesh but I can not realistically texture map it. I can also make the nurb surface from points and texture it at the expense of the edge vertices matching. I am at the split in the road but I want to have my cake and eat it too. Thoughts, comments, trolls...?
Thanks for reading =)
Footnote: For you pros I am not using seamless noise across the map I am using grasshopper to sew up my otherwise non perfect edges.
Other programs in the pipeline:
-WorldMachine 2
-Wilbur
-Photoshop
-Unity3d…
This blog post is a rough approximation of the lecture I gave at the AAG10 conference in Vienna on September 21st 2010. Naturally it will be quite a different experience as the medium is quite…
Added by David Rutten at 3:27pm on September 24, 2010
Reflection.MemberInfo[] Microsoft.Scripting.Generation.CompilerHelpers.FilterNonVisibleMembers(System.Type, System.Reflection.MemberInfo[])'.
As you will see below, this has been affecting quite a few people over the last few years, and it seems i may have stumbled upon a clue today.
This happened to me after i tried to build an MSVC2010 .sln file (Visual Studio Solution) in Visual Studio 2015 in a separate task that required me to download some files for MSVC2010.
A few hours after that happened, i was calling a c# component in grasshopper, and right after that all my python components failed.
I'm hoping this is reproducible to people more knowledgeable in C# and that someone might be able to shed some light on this troubling matter? I shall pray to the C# gods tonight and offer meat buns. :)
thank you for your time,
LQ
p.s. similar problems all over the net. if it is solved here, i will post the link to the solution in all the links below:
Similar grasshopper community questions:
http://www.grasshopper3d.com/group/ladybug/forum/topics/ladybug-runtime-error?commentId=2985220%3AComment%3A1684653&groupId=2985220%3AGroup%3A658987
http://www.grasshopper3d.com/profiles/blogs/runtime-error-on-py-component
http://www.grasshopper3d.com/group/ladybug/forum/topics/ladybug-runtime-error?commentId=2985220%3AComment%3A1684653&groupId=2985220%3AGroup%3A658987
Similar ironpython community questions
http://ironpython-users.python.narkive.com/S7i7l85w/missingmethodexception
http://stackoverflow.com/questions/8058832/system-missingmethodexception-method-not-found…
to parametric design workflows. More information on syntactic design methodology:
My PhD dissertation (see chapters 3 & 4)
Designing with Space Syntax
Syntactic Design Methodology
For more information, videos, news and updates you can visit the following website.
See a video demo-tutorial here.
The plugin is available for download here: https://genesis-lab.dev/products/syntactic/
This plugin is completely compatible with SpiderWeb for Grasshopper and we hereby thank Richard Schaffranek for all we have learned from this extremely useful plugin.
NEW VERSION WAS RELEASED ON JANUARY 25, 2015.
UPDATE: Genesis Lab [webpage][website] is to modernize, open-source, and develop the toolkit starting in December 2021. Stay tuned for updates through my YouTube Channel and ResearchGate. …