4/8/10

First Evolution-based System!

Exciting times! This might not look like a big deal but it is my first evolutionary system that I built myself, so it is actually a BIG deal for me! I am currently working on a building program solver for my thesis project. It will be a chunk of code based on evolutionary algorithms/principles and it is supposed to have program components as Simple Agents with their requirements as settings, a building volume/envelope as a system domain and analysis data (Solar, CFDwind velocity, Noise/Acoustic data) mapped on the envelope as a reference (target) for the “Agents’” properties. So, it will be randomly initialized and then these Components/Agents will have to iteratively adjust themselves within the building envelope. Well, since I had never dealt with Evolutionary Systems before and they are kind of tough to digest for “mortal” folks like me I decided to start with something a bit simpler. Oh, and also apart from understanding the way the system work I’d also have to dig into the OOP and ideally build a class library (.dll) to solve that. And taking in consideration that I had never done that (I mean, I dealt with OOP only within GH RunScript()), so I figured that I’d practice and see what I can do about it with a simpler system but as well evolutionary based. So, I build a .dll with 4 classes: SystemSettings, Zones, Cells and Agents. Basically the logic behind this thing is that there are 1X1 Cells that define a “pixel” for agent movement. There are Zones (bigger square cells) which centroids act as attractors for the Agents. Zones get their attractor value during the initialization either random within a set range or each of them get the same val. And then, depending on how many Agents are located in each Zone they either decrease their attractor value or increase. Agents are the only guys that are moving. They look for a closest Zone centroid (the distance is not only the distance but (dist*attractVal) so the closet centroid doesn’t mean that the agent will be attracted to it. Well, it is fun to see which zone wins and by tweaking the settings it’s interesting to observe how they affect the whole population. The most important thing is that I actually feel more comfortable dealing with these kind of algorithms and their complexity because in the beginning I thought that my head would explode-it feels like you understand the way it works in theory but you have no clue how to approach it. Plus I got some library building experience (still not much, but hey.. one step at a time). I can share the DLL and GH code if someone is interested. Just let me know.









16 comments:

  1. Hey, I would be totally interested in the ghx/dll files :)
    I'm considering dipping in and building an evolutionary system myself, and I'm thinking that any guidance/references would be great to have. If you could post them here, or email to ulterior [at] gmail.com that would be extremely appreciated!

    ReplyDelete
  2. Hello!.

    This has to be a wonderful coincidence, I am about to embark on my thesis in another month, and I have proposed a subject that is extremely similar to the one you are working on. "Evolutionary Multi-Objective Optimization" is the working title at this moment.

    I shall forward a copy of my proposal once I finalise it(working on the details now). If you could email me the ghx/dll files, that would be awesome! I would love to study your process.

    kdondeti@gsd.harvard.edu

    Thanks!!

    ReplyDelete
  3. Hello!

    looks very interesting. i would be very very much appreciate it if i could have a look on how it works.

    If you could send it to sect13[at]yahoo.com,i would be very thankful.

    Thanks in advance!

    ReplyDelete
  4. sure, I will email the files. I'm glad that you found it interesting

    ReplyDelete
  5. Hi Dima,
    Thanks for sharing the work.
    I would be interested to study the files.
    I'm interested how you'd perform your energy analysis in grasshopper.
    Would you please send the files to
    flora [ d o t ] salim [ a t ] gmail [ d o t ] com

    Thanks

    Flora

    ReplyDelete
  6. Hello Dima,

    I have been looking for a examples of evoltionary method using grasshopper and you have.. I am interested in your works and let me have your code plese..

    My email address is eonyong@gmail.com

    Thanks...

    ReplyDelete
  7. hey body nice work well done

    i am also doing some evolurionary system in different platform ,, like processing ,,vvvv so i am wondering if i can look at your definition in GH



    If you could send it to dashacol2001@yahoo.com

    Thanks in advance!

    ReplyDelete
  8. hey morteza1,
    I sent the files your way, let me know if you have any questions

    ReplyDelete
  9. Hey Dima,

    Brendon from gh forum, can I get the gh and dll?

    brendonuc@gmail.com

    great stuff!

    ReplyDelete
  10. Please! very interested in both files. mrca.506@gmail.com. Thanks!

    ReplyDelete
  11. Hello, Dima,

    I've read about your work (grasshopper3d.com & here) and I'm really interested. It looks great and I congratulate you for your hard work. I'd be much obliged if you could share the files and/or any progress with me :] 00.hooloovoo.00@gmail.com,

    Beltrán

    ReplyDelete
  12. Hi Dima,
    Found your blog through some links, I would love to take a look at your code, great work!
    charles.aweida@gmail.com

    ReplyDelete
  13. This comment has been removed by the author.

    ReplyDelete
  14. Hi Dima

    Congratulations for your hard work!!

    I'm starting to work with parametrical urbanism and I find your work very interesting and with many posibilities. I wonder if you can send me the dlls and gh file.

    My email is jbarki99@hotmail.com

    I want to start working on it as soon as possible.

    greetings!

    Javier

    ReplyDelete