Salimzadeh
Assistant: Saeede Kalantari a Fabrication Project for “Structural Systems” BA Course;
Participants: Maryam Ahmadi, Amir Ansaripour, Kimia Bagheri, Mohammad Hassan Habibi, Mohammad Mehdi Zamani, Sam Sabzevari, Zeynab Seyed Zehtab, Mohammad Mehdi Shahroudi, Niloofar Taheri, Masoumeh Abedini, Pedram Feyzi, Asma Karamouz, Kimia Karbalayi, Hamed Kamalzadeh, Fateme Kianinejhad, Maryam Mohammaddoust, Faeze Motamedian, Romina Mehrbod, Sara Naderi, Yasaman Nejati, Kimia Nourinejhad, Morteza Vaziri, Mehragin Baghi, Sana Motallem, Helpers: Milad Amiri, Soroush Raesi, Mahla Behrouz, Alireza Sheykhlar, Shadi Khaleghi, Mohaddese Taheri, Alireza Mohammadi, Mehrnoush Kia
Photography: Sara Ahmadi, Hasan Habibi
Video production: Shayan Khalilbeigi
Special Thanks To Dr. K. Taghizadeh, Dr. H. Mazaherian, Dr. Y. Eslami and Mr.Aliari
With Support Of: Center Of Excellency In Architecture Technology – CEAT - , Collage of Fine Arts University of #Tehran, ‘Art And 4th Dimension’ Symposium, Iran #Fablab and #Fologram
Rhino/Grasshopper and C# Definitions of form-Finding and Member-generation :
http://bit.ly/2RUKc5i…
the Butterfly_Solution component to visualize only the last value, during the simulation.
With this setting, the optimization through Galapagos seems to start in a good way, but after some iterations it stops due to this error on blockMesh component:
Runtime error (ArgumentException): Environment variable name or value is too long.Traceback: line 420, in __setitem__, "C:\Program Files\Rhinoceros 5 (64-bit)\Plug-ins\IronPython\Lib\os.py" line 80, in getShellinit, "C:\Users\mmel\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\butterfly\runmanager.py" line 69, in containerId, "C:\Users\mmel\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\butterfly\runmanager.py" line 260, in _RunManager__command, "C:\Users\mmel\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\butterfly\runmanager.py" line 316, in run, "C:\Users\mmel\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\butterfly\runmanager.py" line 716, in command, "C:\Users\mmel\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\butterfly\case.py" line 748, in blockMesh, "C:\Users\mmel\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\butterfly\case.py" line 112, in getContainerId, "C:\Users\mmel\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\butterfly\runmanager.py" line 215, in command, "C:\Users\mmel\AppData\Roaming\McNeel\Rhinoceros\5.0\scripts\butterfly\runmanager.py" line 47, in script
Anyone know how to fix it?
Thank you
…
essors. And their counter-attitude is not made because of some real reasons - it's just some kind of fear, that time will overrun them and that they will become useless in comparison to the new generation of "computer architects". That is why they are giving false replies on this subject you mentioned: about boring and soulless architecture.
But! I also need to agree that you can not be an architect if you can not draw that by hand, also and imagine the object and it's parts in 3d, in your head, without even using the 3d model from PC application.
I used to draw around 80% of all my projects on university during studies, by hand! And that part helped a lot, and gave me pretty decent base for usage of PC applications later. Drawing by hand develops a bit investigating spirit, and enables you to think about the shape, the way it looks, and the way it will look.Even today, I first do a dozen number of sketches and drawings, before going onto the drawing on PC.The same goes related to some details, that I am already drawing on PC - sometimes I feel it much more comfortable to solve them by hand, and then draw back to PC.
So my opinion on this is a bit mixed - I think that an architect needs to have a solid basis in hand drawing, in order to become a better architect. But I also think that using technology in process of creating architecture is inevitable and reasons for not using it, are pointless.
Just my two cents on this issue.…
Added by djordje to Hiteca at 4:22am on August 7, 2012
being driven by the wii nunchuck... But, here's my issue. I tried it first by having the output from the listener be a 6-digit number... so, I'm using the (CInt(Val(StoredValue))) command and it's writing out 181130... and I can easily split it up selecting the Left(x,3) or Right(x,3)... I first rant that number through a Format("{0:000000}",x) so that even if one of the accx or accy numbers were a 2-digit number (so my overall number would only have 5-digits)... with this Format function... I'm always assured a 6-digit number. And this method works... except...
If the first group of numbers coming in only has 2-digits... So, lets say the accelerometer read out of the first one (accx) is 89. Let's say the accy read out is 119. So, when I run this through the Format function to make it have at least 6 digits, my number now reads 011989. So, if I were to take the first three numbers on the right, my read out would be 989... which is much higher than my expected (60-180 range that is really coming over the Serial Port)... So, I'm back to where I started... in that I need to figure out a better way to split up the data.
Which brings me to your method. I tried it as well... in fact, I added a comma in the serial readout, so the string coming out of the listener reads 89,119. So, I can use your trick to go look for a delimeter and then read to the left and right a certain number of digits... The problem I still have is that the data going into the function is a string, and thus even if I split the 3 digits to the right of the comma out (so, my output says 119)... it's still a string, and my number parameter is still red. In your picture above, was your original 181 130 a number or a string? My guess is that it was understood as a number, because your number parameters at the end are accepting the value. But, in my case... I'm still stuck with the inability to convert a string to a number... Does this make sense? And are their any other workarounds?…
Added by Andy Payne at 9:42am on September 3, 2009
mplex the models are. If we are running multi-room E+ studies, that will take far longer to calculate.
Rhino/Grasshopper = <1%
Generating Radiance .ill files = 88%
Processing .ill files into DA, etc. = ~2%
E+ = 10%
Parallelizing Grasshopper:
My first instinct is to avoid this problem by running GH on one computer only. Creating the batch files is very fast. The trick will be sending the radiance and E+ batch files to multiple computers. Perhaps a “round-robin” approach could send each iteration to another node on the network until all iterations are assigned. I have no idea how to do that but hope that it is something that can be executed within grasshopper, perhaps a custom code module. I think GH can set a directory for Radiance and E+ to save all final files to. We can set this to a local server location so all runs output to the same location. It will likely run slower than it would on the C:drive, but those losses are acceptable if we can get parallelization to work.
I’m concerned about post-processing of the Radiance/E+ runs. For starters, Honeybee calculates DA after it runs the .ill files. This doesn’t take very long, but it is a separate process that is not included in the original Radiance batch file. Any other data manipulation we intend to automatically run in GH will be left out of the batch file as well. Consolidating the results into a format that Design Explorer or Pollination can read also takes a bit of post-processing. So, it seems to me that we may want to split up the GH automation as follows:
Initiate
Parametrically generate geometry
Assign input values, material, etc.
Generate radiance/ E+ batch files for all iterations
Calculate
Calc separate runs of Radiance/E+ in parallel via network clusters. Each run will be a unique iteration.
Save all temp files to single server location on server
Post Processing
Run a GH script from a single computer. Translate .ill files or .idf files into custom metrics or graphics (DA, ASE, %shade down, net solar gain, etc.)
Collect final data in single location (excel document) to be read by Design Explorer or Pollination.
The above workflow avoids having to parallelize GH. The consequence is that we can’t parallelize any post-processing routines. This may be easier to implement in the short term, but long term we should try to parallelize everything.
Parallelizing EnergyPlus/Radiance:
I agree that the best way to enable large numbers of iterations is to set up multiple unique runs of radiance and E+ on separate computers. I don’t see the incentive to split individual runs between multiple processors because the modular nature of the iterative parametric models does this for us. Multiple unique runs will simplify the post-processing as well.
It seems that the advantages of optimizing matrix based calculations (3-5 phase methods) are most beneficial when iterations are run in series. Is it possible for multiple iterations running on different CPUs to reference the same matrices stored in a common location? Will that enable parallel computation to also benefit from reusing pre-calculated information?
Clustering computers and GPU based calculations:
Clustering unused computers seems like a natural next step for us. Our IT guru told me that we need come kind of software to make this happen, but that he didn’t know what that would be. Do you know what Penn State uses? You mentioned it is a text-only Linux based system. Can you please elaborate so I can explain to our IT department?
Accelerad is a very exciting development, especially for rpict and annual glare analysis. I’m concerned that the high quality GPU’s required might limit our ability to implement it on a large scale within our office. Does it still work well on standard GPU’s? The computer cluster method can tap into resources we already have, which is a big advantage. Our current workflow uses image-based calcs sparingly, because grid-based simulations gather the critical information much faster. The major exception is glare. Accelerad would enable luminance-based glare metrics, especially annual glare metrics, to be more feasible within fast-paced projects. All of that is a good thing.
So, both clusters and GPU-based calcs are great steps forward. Combining both methods would be amazing, especially if it is further optimized by the computational methods you are working on.
Moving forward, I think I need to explore if/how GH can send iterations across a cluster network of some kind and see what it will take to implement Accelerad. I assume some custom scripting will be necessary.…
Grasshopper. So, I once made an attempt to bind ms sqlServer in order to get frozen definitions at some states, to avoid managing baked objects in Rhino and also be able to retain whole results without using the GH state manager that rebuilds everything.
But at that time GH's VB.Net component didn't properly read referenced dlls and I forgot it since then.
At first, I was surprised by Slingshot's extensive interface : I was still having in mind my own old project, a tool that would have acted at the Rhino's geometry object level, and auto creating the needed tables.
The bd would have consisted of a main table, owning the objects ID and name, and related tables containing the necessary information relative to the main objects.
For example, a Brep is made of so and so underlying objects, passed to respective tables, according to GH objects definition layout (just the way they are written in the xml schema).
Then, on a db, query an object by name, and retrieve the whole object or underlying objects (e.g. at the bounding curves level, or points level for a Brep).
With Slingshot, I made a few attempts to cheat GH with BLOB data fields, but no way to get a whole object. It seems that GH simply provides an object.toString ... and GH is definitely not conceived to produce persistence outside of Rhino. If I have some spare time, I will try to extract
About points and colors, I am now simply using a single field with CHAR(asLargeAsNeeded...), as GH parses String to every Point (or Vector or Color) entry of any component.
I do so because it need less to display on the canvas...
Whatever I wrote before, I really like your conception, as opened to relational interactions between ...whatever you need or dream of !
One last thing : GH can't open the definition file "Genome_DB_Template.gh" that I've downloaded from your site : http://slingshot-dev.wikidot.com/database-genome. I was expecting to learn a lot from your very smart stuff ! (I am running GH 08.00.13 and Slingshot 0.7.2.0)
Slingshot is running great, opened to any use...Thanks again.
Best,
Stan
…
ey provide all the means to what I try to achieve.
What I need is to get a fast (as possible) evaluation of passive heat/solar gain from a certain facade. I know my building can cool to a certain degree (lets say 80 W/m2 - now lets forget other internal gains) and I want to be sure my facade is not letting excessive amounts of heat into the room/building. Normally I would make a full blown simulation to count my overheating hours and thereby evaluate my facade. To speed up the process, the idea is just to evaluate overheating hours in a faster way. So what I am thinking is that excessive amounts may estimated by counting high intensity irradiation patches in a critical sky-component or whatever such thing would be called that surpasses my sensible cooling load. My hope is that any facade visible to the sky-patches would very similar to the number of overheating hours if properly calibrated to a simulated model. However I have no idea right now, if this can be done.
Why do this? Speed, convenience, whole building thermal analyses.
@Chris and @Abraham The critical sky-component is made with LBs radiance component radiation and filtering the beam-components with highest effects from a yearly epw-file.
@Chris Conductive heat gains are also important especially if the facade is badly insulated, so the next step is to filter the outdoor temperature parallel with that critical sky-component and then do a static heat transfer analysis and combine that with the effect from direct sun influence. Again, no idea if it works.
Hope it makes sense. I a little embarrassed I drew you into this little experiment. This was not at all the point of the discussion. But now we are into it I like to know what you think. If it works its kinda neat, at least i think it is.
/K…
pts organize in a data tree without losing the data structure. To create a folding surface as per image attach.
1. Replace items (to create a gradient) / Like the weight culling example.
Path {0} replace all indexes with a new value (a)
Path {1} replace 90% indexes with a new value (a)
Path {2} replace 80% indexes ...
2. Decrease value (a) in relation to path number
3. After Replace the above items value with
for even path number {0,2,...} replace items with a negative number
Did not find a easy way to create data tree that would achieve the above inside GH.
Point 2 & 3 are easy but i could not found a simple solution for points 1.
At the moment the only way i found is to create the list in Excell manually and import/ export or to create a list on indices for each path.
Any hint appreciated.
Might need to wait for the number slider or path mapper to accept input or notation ?
best
Stephane
…
rld.wolfram.com/EnnepersMinimalSurface.html
when i type the equations for z,y,z it says a syntax error so i obviously do not understand how to construct an expression. (screen capture attached)
Any help/explanation of using this function would be greatly appreciated
thanks so much
Capture.JPG…