When building generative design prototypes, I tend to either over-design solutions or do the quite opposite – not do enough design. From getting things done point of view both ways are perilous. Underestimating the benefits of planning and design does end up often in a dead end stuck in front of some unforeseen obstacle. But if I was asked to choose my side then I would be more cautious about doing too much work at the planning state. I would argue that the value of simplicity in planning and design is about being open to change.
From my experience, there are two major pitfalls – losing momentum or not being open to the feedback. Whereas losing momentum is a danger to any project, not accepting the feedback is a big threat to any project seeking to innovate within its domain. This holds true for developing tools to someone else to use, but is equally important when researching new scientific grounds. Whenever feedback is needed, one’s plan has to be flexible and not too detailed except for the initial stage. Since the second and all the following stages need to adjust to the feedback, too much planning eats up valuable time. The biggest value of simplicity in design is that it is responsive to feedback.
Don’t get me wrong – I am not promoting skipping planning and design at all. What I mean is that one has to design for the change. A good few years ago, I was deeply involved in my early research on mobile agents and their potential use for generating structures that are based on movement and circulation. My sincere plan was to build a multi-agent prototype where little ‘ants’ run around, ‘feel’ the environment and change its geometry. Each change in the geometry was supposed to trigger new ‘feelings’, which in turn would lead into new geometrical senses. Sounds fairly straightforward (I hope). But since I did not want to dictate, what my ‘ants’ build, I wanted to make them to learn, what is a good geometry for them. So I ended up building some analysis into them. At the time there were no neatly packed environmental analysis tools available, so tried to build one (too much work!) but soon found myself in the mind-boggling task of inventing a semantics engine for describing the quality of the environment. As the result, my prototype became heavy and I was faced with the performance problems of my prototype. My prototype was simply over-designed and not enough space was left for change.
After weeks and weeks of hard work and days of painstakingly slow testing sessions I discovered that my ‘sophisticated’ agents were able to build very unsophisticated models that anyone with a little bit of SketchUp and basic spatial reasoning skills would model in a few hours. My ‘ants’ simply could not move! It turned out that trying to go around and ‘build’ something at the same time was too difficult – there was too much high level computation involved.
After such a defeat, it was difficult to find some new motivation for starting over. But after a while I counted my losses and went back to restructuring my research. Simple things first! So instead of imagining the whole system, I focused on the bits that I have done that were more promising. As I looked more intensely at the movement element of my prototype, it turned suddenly out that it was amazingly simple to get ‘ants’ to create circulation paths. I also discovered that the environment and thus its geometry can be seen as kinds of agents too. All that the ‘ants’ now needed to have was spatiality. When I combined mobility with spatiality, the prototype was not only quick enough for interactive play, but it also started to generate more sophisticated models both in terms of circulation and spatial sub-division.
As I started to look into simpler principles for achieving simpler tasks, everything seemed to make more sense again. I was able to find a different way of achieving what I initially wanted to achieve, but couldn’t. I learned that the real value of simplicity lies not only in completing simple tasks, but in its ability to solve many other and perhaps even bigger tasks.
Spatial subdivision computed with mobile agents