Archinect

Product Architecture Lab

 

Archived

Oct '11 - Feb '12

 
  • anchor

    Gerilla: Grasshopper to EnergyPlus

    By Ben.Silverman
    Jan 27, '12 9:31 AM EST

    I have never been much a fan of programming. Even though I have always enjoyed math and logic courses, programming never clicked for me. Part of it might have been the ‘grammar’ of a programming language that I did not care to learn (I hated English grammar courses, why would I enjoy a Java grammar course). However, I think I know understand that the biggest factor was motivation. Objected oriented programming is a powerful tool, but if I have no direct use for the tool I typically have no motivation to try and pick it up. Even in my first year at PAE, when I heard about the Interoperability/OOP course that the second year students were taking I had no interest in taking the course; I didn’t see the purpose. I was happy playing in grasshopper and learning about sustainable design, why confuse my mind with computer science?

    Well, thanks to a well-designed and taught course by Jonatan Schumacher and Ben Howes, both PAE alumni and members of the advanced computational modeling team at Thornton Thomasetti , I have not only gotten a grip of object oriented programming but I have developed pseudo software and having wrestled with the inner workings of grasshopper, rhinocommons and EnergyPlus, I feel incredibly more confident as a grasshopper user and I have a much better understanding of Energy Modeling concepts.

    I wrote about the earlier stages of the Interoperability course and wrote about my midterm project connecting grasshopper and EnergyPlus. For the final project, my team members, Drew and Mike, and I further developed the Grasshopper to EnergyPlus tool and even came up with an animal name for it: Gerilla. We took our initial grasshopper definition made of custom vb nodes and developed them into full-fledged custom Grasshopper components (Jonatan Schumacher's tutorial on building VB.net Grasshopper components in Visual Studio) . It was actually a very fun experience. It was part programming, part user interface design, part sustainable design and energy modeling and a whole lot of cursing under my breath. I had to set aside whole days to battle very simple tasks that an actual computer programmer could accomplish in their sleep. But the rollercoaster ride of failure and eventual (sometimes) success was a thrill that kept me going for hours on end. You can check out a Gerilla demo video at the bottom of this post. As a programming beginner.

    I think Gerilla is a very successful project considering our skills at the outset of the course. It’s a pretty convincing proof of concept for a grasshopper energy modeling plug in that could be incredibly useful for a designer in the schematic design phase to iterate their designs. With some more development it could be a useful tool to iterate and determine ideal massing, orientation, wall and window u-values, window to wall ratios and shading. It would be really awesome to hook this tool up to Galapagos or some other evolutionary solver or optimizer (I just tried to run Gerilla with Galapagos and it set approximately 400 EnergyPlus simulations into motion; for a second I thought I sentenced my computer to an eternity of command windows).

    My major contribution to the project was to develop the ability for Gerilla to model multiple thermal zones. After our midterm project we discovered DIVA (a software group out of Harvard GSD) had developed their own Grasshopper to EnergyPlus plug-in called Viper. It was a bit disappointing (we actually thought we might be the first to the scene), but we couldn’t deny Viper’s impressive usability and interface. The only fault we could see (and it’s only a matter of time before DIVA develops it further) was the inability to model more than one zone so we decided to tackle that with Gerilla. It turned out to be quite a task due to the inability to transfer multiple types of data in one wire from one grasshopper component to another. In short, each surface represents about 10 lines of code in the text file that is read by EnergyPlus when an energy model is simulated. In that 10 lines of data, if there are any adjacent zones the name of the adjacent surface of that zone must be referenced by name. So when modeling multiple adjacent zones we needed to tag the surfaces of the zones with the adjacent surface of its neighboring zone so that the tag could later be translated into the text file to be read by EnergyPlus. In order to accomplish this, after detecting adjacent surfaces, Gerilla utilizes the dimensions of the branch path coming out of the component to relay the identity of the adjacent surface to the next component. It’s an interesting method of adding additional information to grasshopper geometry, introducing a very abstract form of BIM to grasshopper. If you want to hear more about this aspect of the project I wrote a tutorial on the class blog Architexted that elaborates on how to utilize grasshopper branch paths to embed additional information about grasshopper geometry.

    You can learn more about Gerilla at  Architexted or on our Grasshopper page. Please also check out the rest of the content from our class on Architexted. There are plenty of other awesome projects that were developed in the course, including a macro to automate Revit to draw structural members imported from SAP2000, a grasshopper tool to connect to ecotect, and a set of grasshopper components to generate and analyze ship hulls. We also put together tutorials on the specific things we each geeked out on.



     
    • 7 Comments

    • Kenshiro

      Looks like a great tool. When will the plugin be available? (the Primer link on your site is dead as well). 

      Jan 27, 12 11:35 am  · 
       · 
      nmiller.arch

      Nicely done!

      Your approach to linking nodes to construct  simulation files seems similar to my demo @  http://nmillerarch.blogspot.com/2011/08/energy-modeling-with-grasshopper-proof.html

      How much customization of simulation files can you do via your nodes?  Given the high level of customization you can have with an IDF file, if everything were node-based the complexity of the definition would be very high.  Viper seems to manage this with other menus (but still limited to 1 zone)...  how does Gerilla manage this?

      Again, nice work!

      Nathan

      Jan 27, 12 12:07 pm  · 
       · 
      Ben.Silverman

      Nathan,

      At the moment our functionality or customization of the IDF file is limited to custom materials and construction assemblies, weather file, and run period. The HVAC system is currently as basic as would let us get by and is not accessible via the Gerilla components. We felt it would be difficult to get HVAC systems into a grasshopper component because there are so many combinations of systems and each piece of equipment requires a lot of input. It seems like it would require much more of a windows form application/link to excel spreadsheets or the use of basic preset HVAC profiles like Viper has done. So at the moment Gerilla has been developed as more of a schematic design parametric modeler to find orientation, form (however we had trouble getting non-rectilinear geometry to work) and wall and window specifications.

       

      Kenshiro,

      Its wierd, I havent had trouble with the link when I right click and select save as, but several others have. If this doesn't work, please send me your email address and I will link you to a DropBox folder with the primer and the plugin (the plugin is very much a work in progress and is a bit buggy). Thanks for your interest.

       

      Jan 27, 12 12:19 pm  · 
       · 

      very cool! and very exciting. We are always looking for better tools to actually use energy modeling results in the design process. One of the hardest things to figure out is how simulation results can be manifested in a design and tools like this can yield some amazing design innovation. However, like all things complex, if they are not understood properly, then they can be dangerous. Don't get me wrong, I believe in programs like grasshopper and Viper/Gerilla, but I have also seen some pretty terrible projects that the designer thinks are justified because of the software used to create it. Environmental design has enough trouble with credibility as it is so I just want to warn of the potential hazards to making simulation results accessible as design inputs to people who don't really understand the results. I am certainly not knocking your amazing work! The same warning is true for grasshopper itself. Its a very complex tool but it is easy to get something out of and not many people have your dedication to getting things right. 

      Jan 30, 12 5:10 pm  · 
       · 
      Ben.Silverman

      Amy,

      Thanks for the comments. I agree with you on the dangers of automated software design. Software is only a tool, it is not a replacement for designers. As our Environmental Analysis Professor told us on the first day "garbage in, garbage out". These tools only work as well as the data and knowledge you put into it. A big part of our Environment Analysis class was learning to first interpret results and then predict results. We were using a program called IES, which took about an hour or more for one simulation, so we needed to make educated guesses at what works and then simulate to try and validate our assumptions, otherwise we'd spend hours simulating and get nowhere.

      That process was helpful but it was painfully slow. I think tools like Gerilla and Viper can be most powerful as educational tools. Whether its a professional designer or a student, quick feedback on design iterations can help link cause and effect in our minds. Rather than spending a whole day on IES tinkering with 1 or 2 design parameters and then being too exhausted to full comprehend the results, Gerilla and Viper would allow you to accomplish that and more within a couple of hours. In addition, the ability to visualize the data in grasshopper is very helpful. I am a visual learner, so gradient maps are much more legible for me than data spreadsheets. Same goes for Grasshopper itself. I never did well in programming courses, but Grasshopper visualized programming for me, and when I re-approached programming this past fall, I felt much more confident. 

      Context for any of these tools is important. That's why I don't think anybody can claim they are a designer just because they know how to use software. Education and guidance is still important, but I think the use of these tools can help make the education process much more powerful.

      Ben

       

      Jan 31, 12 11:14 am  · 
       · 
      dimak1999

      Amy, 

      You have a valid point regarding the energy simulation data. However, I disagree on the Grasshopper part of your warning. Grasshopper is first and foremost an algorithmic editor. Very different animal if you compare it to any 3d modeler where you do freeform design. In order to get something out of GH you actually need to be able to rationalize your design to the point that you can actually create an algorithm to reproduce your design intent. You need to truly understand the "drivers" behind your design (whatever it is) to make it happen in GH or any other algorithmic editor (say Generative Components) for that matter. So I'd argue that whatever "gets out of" Grasshopper is by definition more legit and thought out then whatever comes out of any 3d freeform modeling software.

      Dima

       

      Feb 1, 12 11:36 am  · 
       · 

      Dima, 

      I agree that GH output is more thought out than other 3d freeform modeling software, but I am concerned that by connecting GH to data put out of simulation programs it would be possible to generate projects that seem to be "sustainable" because they are based on energy modeling or climate data. For example an office tower in Hong Kong was presented as being an example of sustainable parametric design because it used climate data from Hong Kong in GH to optimize solar access of the offices. While the formal result was very cool looking, the entire project is inherently flawed because in a Hong Kong office building you actually want to block solar penetration to prevent overheating. While this oversight was on the part of the person designing it, they were able to get so far along in the project without  someone stepping in to correct them because of the ease of importing the data that was the basis of their design. I definitely still think GH is  a great tool and can only be made more powerful by plugins like Viper and Gerilla. I just want to get the warnings out there.

      Feb 1, 12 5:59 pm  · 
       · 

      Block this user


      Are you sure you want to block this user and hide all related comments throughout the site?

      Archinect


      This is your first comment on Archinect. Your comment will be visible once approved.

    • Back to Entry List...
  • ×Search in:
 

About this Blog

The Product-Architecture Lab at Stevens Institute of Technology is a pioneering graduate program integrating the study of Architecture, Engineering, Product Design, and Interaction. The program focuses on a fusion of design culture and technology through the disciplines of computation, analysis, and advanced production methodologies.

Affiliated with:

Authored by:

  • Ben.Silverman

Other blogs affiliated with Stevens Institute of Technology:

Recent Entries