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.
Labels:
Evolutionary Solver,
Grasshopper,
Rhino
Subscribe to:
Post Comments (Atom)


Hey, I would be totally interested in the ghx/dll files :)
ReplyDeleteI'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!
done
ReplyDeleteHello!.
ReplyDeleteThis 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!!
Hello!
ReplyDeletelooks 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!
sure, I will email the files. I'm glad that you found it interesting
ReplyDeleteHi Dima,
ReplyDeleteThanks 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
Hello Dima,
ReplyDeleteI 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...
hey body nice work well done
ReplyDeletei 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!
hey morteza1,
ReplyDeleteI sent the files your way, let me know if you have any questions
Hey Dima,
ReplyDeleteBrendon from gh forum, can I get the gh and dll?
brendonuc@gmail.com
great stuff!
Please! very interested in both files. mrca.506@gmail.com. Thanks!
ReplyDeleteHello, Dima,
ReplyDeleteI'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
Hi Dima,
ReplyDeleteFound your blog through some links, I would love to take a look at your code, great work!
charles.aweida@gmail.com
Nice blog
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteHi Dima
ReplyDeleteCongratulations 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