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 …
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…
ARRAY with certain spatial order or mechanism under consideration of ecological design. The evaluation and definition of “ARRAY” are open to applicants’ imaginations. While the term “ecological” is subjected to many definitions: social, ecological, sustainable, its re-evaluations are open to students’ interpretations. Entrants are free to choose or make site, real or virtual.
ELIGIBILITY
Open to international students in the fields of architecture and design related disciplines from an accredited four-year or five-year architecture program. Graduates with certificate in 2011 are accepted. Teamed collaboration consisting of no more than 3 students in the above mentioned fields is permitted. Works submitted must be of applicants’ original works. Works done through school studios are accepted, but limited to 2011 term.
ENTRY FEE
Free
DEADLINES
Online Registration deadline: Oct 30th, 2011, 17:00 Taipei Time
(Upon completing registration, applicant will receive a registration number via email.)
Submission deadline: email sent by Nov 3rd, 2011, 17:00 Taipei Time
SUBMISSION REQUIREMENTS
This is a digital competition and no hardcopies are necessary. Entrants must submit their proposal via email no later than Nov 3rd, 2011 17:00 (Taipei Time) to the following email address:
hojenhwang@mail.ntut.edu.tw
The project submission must contain the following files:
1. Two A1 boards in portrait format (594mm x 841mm), with identification number at the upper right corner. Names and other identifying information are not allowed on front side of the boards. The resolution of the boards must be 300dpi, RGB mode and saved as JPG files.. The files must be named after the registration number followed by the board number. For example: 03956-board1.jpg and 03956-board2.jpg.
2. A DOC file containing the project discription (600 words max). This file must be named after the registration number followed by the word "discription". For example: 03956-discription.doc.
3. A scan of statement form. This file must be named after the registration number followed by the word "statement_scan". For example: 03956-statement_scan.jpg.
4. All the files must be placed in a ZIP folder named after your registration number. For example: 03956.zip. Size of the ZIP folder is suggested to be less than 15mb, while size more than 25mb will not be accepted
AWARDS
(1) Gold Prize winner will be awarded TWD 60,000 and a trophy.
(2) Silver Prize winner will be awarded TWD 30,000 and a trophy
(3) Bronze Prize winner will be awarded TWD 15,000 and a trophy
(4) Honorable Mention winners will be awarded TWD 5,000 and a merit certificate
Winners will be announced and notified by mid of Nov, 2011.
JURY
Two stages of open jury. Details to be announced
PUBLIC EXHIBITION
Nov 13, 2011~ Nov 18, 2011 at NTUT, Taipei
…
Added by Yu-Min Su at 2:03am on September 23, 2011
he Cordyceps. Maybe some of you find this helpful/useful.
So basically, the Cordyceps is a physical module with 4 knobs and 1 slider. The knobs give an output between 1 and 1000, while the physical slider outputs 0-359. And of course, for this physical module I wrote a plugin to communicate with it. The knobs are intended to be the variables that modifies the design, while the physical slider is intended to be connected to the camera component.
Here I will put up "the recipe" for all to make their own module. You will be able to download the plugin as well.
Please send me a message if you want the 3D-files for the knobs, the box and slider knob. They've been made to directly 3D-print.
Plugin:
https://github.com/zakadjeb/Cordyceps/blob/master/Cordyceps/Cordyce...
Code for Arduino IDE:
https://github.com/zakadjeb/Cordyceps/blob/master/Arduino/_Arduino_...
What you need:
1x - Arduino (Leonardo, UNO or whatever)
4x - Potentiometers
1x - Sliding potentiometer
1x - Breadboard
Bundle of jump wires.
1. So, a potentiometer is a variable resistor, which is basically a component that changes the resistance between the voltage and the ground.
If A is supplied with 5V then B must be connected to Ground. The W will give "read" the resistance, and thus should be placed in Analog input (A0-A5) on the Arduino. The slider potentiometer works the same way.
2. Now connect the 4 pots to each their Analog input. The slider is supposed to be in A4. So to make sure:
A0: Knob1
A1: Knob2
A2: Knob3
A3: Knob4
A4: Slider
3. Now it's time to connect the voltage! Using the breadboard, the voltage can be sent through 1 line, the Ground as well. It should be quite easy to connect them.
4. Now, download the Arduino IDE and copy-paste the code I supplied above. In the IDE, you need to let it know which Arduino you're working with, and which port is should send the script.
5. Almost there. Download the plugin. Open the port you're using through the plugin. Set Start to True and the Cordyceps should be within you.
This recipe will be updated!
Let me know if there are any issues.
// Zakaria Djebbara…
he Cordyceps. Maybe some of you find this helpful/useful.
So basically, the Cordyceps is a physical module with 4 knobs and 1 slider. The knobs give an output between 1 and 1000, while the physical slider outputs 0-359. And of course, for this physical module I wrote a plugin to communicate with it. The knobs are intended to be the variables that modifies the design, while the physical slider is intended to be connected to the camera component.
Here I will put up "the recipe" for all to make their own module. You will be able to download the plugin as well.
Please send me a message if you want the 3D-files for the knobs, the box and slider knob. They've been made to directly 3D-print.
Plugin:
https://github.com/zakadjeb/Cordyceps/blob/master/Cordyceps/Cordyce...
Code for Arduino IDE:
https://github.com/zakadjeb/Cordyceps/blob/master/Arduino/_Arduino_...
What you need:
1x - Arduino (Leonardo, UNO or whatever)
4x - Potentiometers
1x - Sliding potentiometer
1x - Breadboard
Bundle of jump wires.
1. So, a potentiometer is a variable resistor, which is basically a component that changes the resistance between the voltage and the ground.
If A is supplied with 5V then B must be connected to Ground. The W will give "read" the resistance, and thus should be placed in Analog input (A0-A5) on the Arduino. The slider potentiometer works the same way.
2. Now connect the 4 pots to each their Analog input. The slider is supposed to be in A4. So to make sure:
A0: Knob1
A1: Knob2
A2: Knob3
A3: Knob4
A4: Slider
3. Now it's time to connect the voltage! Using the breadboard, the voltage can be sent through 1 line, the Ground as well. It should be quite easy to connect them.
4. Now, download the Arduino IDE and copy-paste the code I supplied above. In the IDE, you need to let it know which Arduino you're working with, and which port is should send the script.
5. Almost there. Download the plugin. Open the port you're using through the plugin. Set Start to True and the Cordyceps should be within you.
This recipe will be updated!
Let me know if there are any issues.
// Zakaria Djebbara…
; GH, this one came out and rhinoceros is disappear...like this
it said " Rhinoceros5's working is stopped. because some problems occured so Rhinoceros5 can't work correctly no longer " then I have no choice but terminate Rhinoceros.
There are some discussion about RhinoIronPython installing numpy though, no one has same problem like me. so Please somebody tell me!!
and one more question...just in case, I tried to install numpy into ironPython2.7
C:\Program Files (x86)\IronPython 2.7>ipy "C:\Program Files (x86)\IronPython 2.7\ironpkg-1.0.0..py" --installBootstrapping: c:\users\owner\appdata\local\temp\tmp2nand1\ironpkg-1.0.0-1.egg 118 KB [.................................................................]
C:\Program Files (x86)\IronPython 2.7>ironpkg -hUsage: ironpkg-script.py [options] [name] [version]
.
.
.
C:\Program Files (x86)\IronPython 2.7>ironpkg scipyWrote configuration file: C:\Users\owner\.ironpkg=============================================================================Traceback (most recent call last): File "C:\Program Files (x86)\IronPython 2.7\ironpkg-script.py", line 10, in <module> File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\main.py", line 364, in main File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\indexed_repo\chain.py", line 27, in __init__ File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\indexed_repo\chain.py", line 67, in add_repo File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\utils.py", line 92, in write_data_from_url File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 435, in open File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 407, in _call_chain File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 654, in http_error_302 File "C:\Program Files (x86)\IronPython 2.7\Lib\httplib.py", line 1261, in __init__ File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\utils.py", line 73, in open_url File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 154, in urlopen File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 547, in http_response File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 467, in error File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 429, in open File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 446, in _open File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 407, in _call_chain File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 1240, in https_open File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 1167, in do_openAttributeError: 'module' object has no attribute '_create_default_https_context'
C:\Program Files (x86)\IronPython 2.7>
how can I deal with this error?…
ed file and code below:
Color ColorAt(Mesh mesh, int faceIndex, double t0, double t1, double t2, double t3) { // int rc = -1; var color = Rhino.Display.Color4f.Black;
if( mesh.VertexColors.Count != 0) { // test to see if face exists if( faceIndex >= 0 && faceIndex < mesh.Faces.Count ) { /// Barycentric quad coordinates for the point on the mesh /// face mesh.Faces[FaceIndex].
/// If the face is a triangle /// disregard T[3] (it should be set to 0.0).
/// If the face is /// a quad and is split between vertexes 0 and 2, then T[3] /// will be 0.0 when point is on the triangle defined by vi[0], /// vi[1], vi[2]
/// T[1] will be 0.0 when point is on the /// triangle defined by vi[0], vi[2], vi[3].
/// If the face is a /// quad and is split between vertexes 1 and 3, then T[2] will /// be -1 when point is on the triangle defined by vi[0], /// vi[1], vi[3]
/// and m_t[0] will be -1 when point is on the /// triangle defined by vi[1], vi[2], vi[3].
MeshFace face = mesh.Faces[faceIndex];
// Collect data for barycentric evaluation. Color p0, p1, p2;
if(face.IsTriangle) { p0 = mesh.VertexColors[face.A]; p1 = mesh.VertexColors[face.B]; p2 = mesh.VertexColors[face.C]; } else { if( t3 == 0 ) { // point is on subtriangle {0,1,2} p0 = mesh.VertexColors[face.A]; p1 = mesh.VertexColors[face.B]; p2 = mesh.VertexColors[face.C]; } else if( t1 == 0 ) { // point is on subtriangle {0,2,3} p0 = mesh.VertexColors[face.A]; p1 = mesh.VertexColors[face.C]; p2 = mesh.VertexColors[face.D]; //t0 = t0; t1 = t2; t2 = t3; } else if( t2 == -1 ) { // point is on subtriangle {0,1,3} p0 = mesh.VertexColors[face.A]; p1 = mesh.VertexColors[face.B]; p2 = mesh.VertexColors[face.D]; //t0 = t0; //t1 = t1; t2 = t3; } else { // point must be on remaining subtriangle {1,2,3} p0 = mesh.VertexColors[face.B]; p1 = mesh.VertexColors[face.C]; p2 = mesh.VertexColors[face.D]; t0 = t1; t1 = t2; t2 = t3; } }
/** double r = t0 * p0.FractionRed() + t1 * p1.FractionRed() + t2 * p2.FractionRed(); double g = t0 * p0.FractionGreen() + t1 * p1.FractionGreen() + t2 * p2.FractionGreen(); double b = t0 * p0.FractionBlue() + t1 * p1.FractionBlue() + t2 * p2.FractionBlue();
ON_Color color; color.SetFractionalRGB(r, g, b);
unsigned int abgr = (unsigned int)color; rc = (int) ABGR_to_ARGB(abgr); **/ var c0 = new Rhino.Display.Color4f(p0); var c1 = new Rhino.Display.Color4f(p1); var c2 = new Rhino.Display.Color4f(p2); float s0 = (float) t0; float s1 = (float) t1; float s2 = (float) t2;
float R = s0 * c0.R + s1 * c1.R + s2 * c2.R; float G = s0 * c0.G + s1 * c1.G + s2 * c2.G; float B = s0 * c0.B + s1 * c1.B + s2 * c2.B; color = new Rhino.Display.Color4f(R, G, B, 1); } } return color.AsSystemColor(); }
…
y using the Honeybee_Update Honeybee component.
The video below (best viewed in full-screen mode) provides an idea of what these components are capable of being used for:
The video below shows how these components can be used in an existing Honeybee project (for additional links please open this video in youtube):
I have uploaded two examples as Hydra files that show how these components can be used for grid-point and image-based simulations:
Example1 : Grid Point Calculations
Example2: Image based simulation
Finally, a more esoteric application is demonstrated in this video:
These components are still in the beta-testing stage. Some of the limitations of the components are:
1. Only Type C photometry IES files are supported at present.
2. Rhino is likely to get sluggish if there are too many luminaires (i.e. light fixtures) present in a scene.
3. Due to the spectral limitations of the ray-tracing software (RADIANCE), simulations involving color mixing might not be physically realizable.
Additional details about photometric and spectral calculations are probably an overkill for this forum. However, I'd be glad to answer any related questions. Please report any bugs or request new features either on this forum or on Github.
Mostapha, Leland Curtis, Reinhardt Swart and Dr. Richard Mistrick provided valuable inputs during the development of these components.
Thanks,
Sarith
Update 16th January 2017:
An example with some new components and bug fixes since the initial release announcement can be found here
…