MakerLab Blog » ecology http://blog.makerlab.com Go on, be curious Thu, 14 Mar 2013 06:30:21 +0000 en-US hourly 1 http://wordpress.org/?v=3.9.15 Riffing on modeling ecosystems http://blog.makerlab.com/2009/01/riffing-on-modeling-ecosystems/ http://blog.makerlab.com/2009/01/riffing-on-modeling-ecosystems/#comments Sat, 03 Jan 2009 02:10:52 +0000 http://blog.makerlab.com/?p=523 How can we build tools that help people make better decisions about the kind of large scale civic planning issues that affect them and their communities?

Over the last week I had a chance to do some more thinking on the issue and did code tests to build small implementation sketches.  I’ve recruited Mikel‘s assistance and grabbed http://openecosim.org – which has nothing on it yet but will hopefully have something soon.  As usual I like to use the praxis of spending half the time on thinking and half the time on actual test code.

The Thinking Part

To use the hoary old example I usually pull out: consider a decision to cut an old growth forest.  There are ownership issues, watershed buffer issues, true cost issues, longer terms repercussions and non-obvious vested interests. Sometimes we arrive at conclusions through force of will rather than through an an audit of our actual group understanding. There’s an unbounded rationalism fueled by a kind of technoglossia babble speak that doesn’t really bring grounded interests to the table.  It leads to a kind of Monsanto-ish approach to problem solving; using bigger sledge-hammers, spending down natural resources, and kind of “cashing out” on the present at the cost of the future.  Basically it is a kind of naivete conflated with power.

To use another example – just today there was a great link posted to geowanking.org on the “The Venus Project”:

Here the authors present a vision of a future city; one that is optimized using the best technology – where buildings are built more cheaply and goods and services can be moved around more cheaply – all to the totem of consumption.

Although framed as a utopia it’s completely dystopic – humans couldn’t walk these broad boulevards; and humans couldn’t maintain the buildings themselves without access to some kind of corporate sponsored machinery.  It shows how inhuman design can be; how the pursuit of efficiency can let people rationalize things that are horrific.  Especially amusing is that anything that they built would be obsolete by the time it was done.

I pretty much need to just include Paul Ramsey‘s comments here because he succinctly makes very point that underscores the problem with a kind of Ayn Rand rationalism unchained:

That’s hilarious! A modern vision of the future (the video is (c)
2006), that looks basically like Disney’s tomorrow-land.  It makes
sense that the ideas in the video are so shopworn — the guy behind it
is 92 years old! <http://en.wikipedia.org/wiki/Jacque_Fresco>

For precursors to this silly stuff, see the works of Corbusier
<http://en.wikipedia.org/wiki/Le_Corbusier>. He died in 1965, but was
pushing his “Contemporary City”
<http://en.wikipedia.org/wiki/Ville_Contemporaine> basically his whole life.  Like the lunacy in the video, it envisioned a “from scratch”
city, though Corbu was crazy enough to propose bulldozing much of
Paris (Paris!!!!) to make room for his new design.  A good deal of the
“urban renewal” schemes <http://en.wikipedia.org/wiki/Urban_renewal> of the 50s and 60s were based on the urban design ideas presented in the video (get rid of “inefficient” old urban fabric, replace with new vertical, efficiently-built fabric) and boy, that turned out great.

Some folks were so taken in by the modernist urban concept, they
actually followed up on it. The capital of Brazil, Brasilia,
<http://en.wikipedia.org/wiki/Brasilia> is designed on a circular
plan, with strict separation of uses (work here, live there, play over
there). Like Corbusier’s design, it is optimized for non-human
variables, things like transportation efficiency and separated land
use.  It too pre-dates this video by decades.  I has a lot of
modernist masterpieces, set (of course) in solitude in vast parking
lots, away from distracting, messy people.

There is a satellite development of Rome, EUR, planned by Mussolini,
that had similar “from scratch” modernist design pretensions, and it
too is a bit of a wasteland.
<http://en.wikipedia.org/wiki/Esposizione_Universale_Roma>

Jane Jacobs <http://en.wikipedia.org/wiki/Jane_Jacobs> wrote a couple good books about how *people* use urban spaces, which are good primer for understanding why “from scratch” cities just won’t ever work: “The Death and Life of Great American Cities” and “The Economy of Cities”.

I remain blown away by that video, truly, it’s like a time-warp –
better life through engineering.  It’s true though, as the video says,
that having a vision of the future is helpful if you want to maintain
consistent progress towards betterment (assuming your vision is
actually “better”). However, if I were to import and reuse an “vision
of the future from the past”, I’d choose Callenbach’s “Ecotopia”
<http://en.wikipedia.org/wiki/Ecotopia> over this tomorrow-land stuff
any day.

Sometimes seeing nightmarish design like this creates uncertainty and doubt over ever actually doing a better job.  If people put so much thought into such mediocre products; then how could we dare do any better? But I think there’s a convergence that happens.  And I think we just have to have the hubris to assume that we are slightly less stupid – having seen their mistakes?

I wouldn’t really try do a clean slate approach; there’s so much richness in what is there and so much could be tuned and reclaimed…  As a thought exercise it could be interesting but I actually like the organically driven approach; seeded by people’s habits – even say for a moon city – an organic approach would be most human.

If I was going to try something like this I’d build on the idea of “place making” and working landscapes: http://www.amazon.com/Working-Landscape-Preservation-Industrial-Environments/dp/026203364X .  Yes some kind of specialization is good: you do want high density urban areas which may not be farmable in order to have enough people in one place that they can actually talk and explore new ideas more quickly.  But for me a new style city would be mixed use; mixing light industry, residential, agricultural and the like; in some parts tending more towards being like a forest with homes tucked away within it.  I’d model it by flowing people through it; playing with different demographics, different age groups, and I’d try score different city models by how well they satisfied needs of diverse populations; aged, young, entrepreneurial and the like. I’d score it against real world feedback and I’d look at ancient city patterns for ideas. Also I’d probably look more at the laws – like get rid of most of them and put in edicts that for any new law added you had to remove two others.  Ownership, fences and land use laws in general create a lot of needless annoyance. I’d ask how we could recolonize existing urban areas away from bad zoning. Then I’d look at technology specialization; half of all cities are basically paved flat dead; there has to be a way to reclaim some of that – it sounds silly but I think we’re almost at the age where power density is high enough that we could have ourselves some flying cars (or at least things that could hop from point to point); and perhaps funding that could be useful.

The Code Part

The proposition to simulate ecosystems seems to best be modeled using a cellular automata approach.  But since these terrains can be so large – and so self-similar – some kind of sparse matrix or spatial compression technique seems to be required.  There has to be some kind of trade-off between performance ( being able to index each cell in linear time and in as few clock cycles as possible ) and scaleability ( being able to manage large datasets ).

I also wanted to use a language that is easy for others to use.  Java seems to be the obvious language of choice – the guy who wrote it is basically wanted to avoid any complex features.  However there are some very serious language defects.  The most serious is that since memory can’t be managed directly, it becomes very hard to build efficient sparse matrix implementations ( which would be required for performance ).  This however can be circumvented by using tools like MTJ :

So Java can be used; and in general I think I’ll stay in the family of languages that are Java like at least – such as perhaps C# (which has better direct memory management support).

However – aside from an industrial strength implementation – what I want as a first step is something that is more of a thumbnail sketch and something that other people can play with as well.

Processing is a nice Java based framework that seems to meet the criteria. One key choice for a processing based approach was to literally just use images as the cellular automata layers. This throws away the sparse matrix approach for now but gives us something we can play-test faster.

This brings us to the actual data models. I am thinking that I would have a base concept of a “feature” – and that I would distinguish (in code) between a concept of a “layer” and a concept of a “relation”.  Layers would embody the state of the world, such as soil, water, elevation, water temperature, air temperature, suspensions in water and the like – and relations would specify how layers act on each other.  A water and soil relationship would be one that computes forward how water acts on soil and visa versa given gravity, sunlight, evaporation, humidity, rain, erosion, compactness, geography and other factors.

Overall I think the next steps now will be to take the rough draft and actually try simulate some behavior across it. I’d like to just be able to simulate land, waterfall and water flow.

I don’t like to speculate too far ahead but I do think that when it comes time to simulate salmon or living creatures that I am going to simulate them using “stand in’s” where I have just a few – on the order of 1/10000th as many as truly exist – and simply have their effects be magnified. The reasoning here is that if I build a 3d interactive simulation of the environment I’d like to let a kid (or an adult) actually follow a single salmon through it’s entire life cycle – to personalize the simulation a bit.

Below I’ve included the small code test that I wrote – this doesn’t do much yet. There’s no real conclusion yet because this is a work in progress – I simply wanted to share some of the thinking I’ve been doing.

class Feature {
  public String name;
  public String get_name() { return name; }
  public Feature set_name(String name) { this.name = name; return this; }
  public Feature() {}
  public Feature(String name) {
    set_name(name);
  }
}

class Layer extends Feature {
  public Layer set_name(String name) { this.name = name; return this; }
  public PImage image;
  public Layer load(String filename) {
    image = loadImage(filename);
    return this;
  }
}

class Relation extends Feature {
  public Relation set_name(String name) { this.name = name; return this; }
  public void eval(int seconds) {}
}

class SoilWindWater extends Relation {
  public void eval(int seconds) {
	//	
	// for just this cell
	// or for all cells 
	//	 a = a.get(x,y);
	//   b = b.get(x,y);
	//	 - decide on time of day
	//   - set soil stuff
	//	 - set wind
	//	 - set water
	//   a.set(x,y) = a;
	//   b.set(x,y) = b;
	//   could set points around this one too
	//
  }
  public SoilWindWater set_name(String name) { this.name = name; return this; }
  public Layer soil;
  public Layer water;
  public SoilWindWater set_soil(Feature soil) { this.soil = (Layer)soil; return this; }
  public SoilWindWater set_water(Feature water) { this.water = (Layer)water; return this; }
}

class WaterSalmon extends Relation {
  public void eval(int seconds) {
	// perhaps just for cells with salmon
	// evaluate impacts
	// need to model time of year
	// need to model salmon run points; layer needs an idea of 'home'?
	// or we can have another concept of spawning grounds that we can supply
	// or salmon could find their way back by smell?
	// or?
  }
}

class World {
  Feature features[];
  public World() {}
  public void sample() {
    features = new Feature[6];
    features[0] = (new Layer()).set_name("soil").load("soil.png");
    features[1] = (new Layer()).set_name("water").load("water.png");
    features[2] = (new Layer()).set_name("wind");
    features[3] = (new Layer()).set_name("salmon");
    features[4] = (new SoilWindWater()).set_name("soilwindwater").set_soil(features[0]).set_water(features[1]); // xxx be explicit or use detection?
    features[5] = (new WaterSalmon()).set_name("watersalmon");
  }
}

World world = new World();

void setup() {
  size(512, 512);
  world.sample();
  noLoop();
}

void draw() {
  Layer water = (Layer)world.features[1];
  image(water.image, 0, 0); 
  // now with a scaffolding up - the next step would be to actually do something!
}
]]>
http://blog.makerlab.com/2009/01/riffing-on-modeling-ecosystems/feed/ 0
Looking At Solutions From The Ecologist’s Points Of View http://blog.makerlab.com/2008/12/looking-at-solutions-from-the-ecologist%e2%80%99s-points-of-view/ http://blog.makerlab.com/2008/12/looking-at-solutions-from-the-ecologist%e2%80%99s-points-of-view/#comments Fri, 26 Dec 2008 01:56:38 +0000 http://blog.makerlab.com/?p=480 Last time, I talked about how the designer and economist see and gauge the effectiveness of a solution.

This time, we’re moving into the third territory: the ecologist’s. We’re going to look at solutions that change the shape of the space they’re in. True to its name, I’m going to use the natural web of life, adaptation and evolution as analogies.

The ecologist, I think, will propose two things that problem solver could do:

Up until the end of the Cretaceous Period 65 million years ago, dinosaurs, large-sized, cold-blooded reptiles (or so they speak of them) became the dominant Phylum in the ecosystem. But notice how the game changed gradually afterwards. Small-sized, warm-blooded mammals, originally of relatively weak physique and small population, survived, thrived and changed the game until today
What does the mammalians do to change the space they’re in?

This is the first way: they did nothing. They let nature takes its course, kept themselves small, then wait for the impending disaster to arrive, survive thanks to their relative size and thrive that way.

Applied to problem solving, idea that at first doesn’t seem like much (whether by elegance or economy), but is able to withstand time by laying low until all the other idea (company, product, etc.) withers away, wins.

In a decidedly ethnocentric move, I’ll take our own race as a second example:

For at least most of the world’s history, no other species had changed the environment around it as much as we, humans, do (mostly negatively, but that’s beside the point.) I’m going to go into a classic argument here and say that we are weaker and less agile than many other creatures out there (cheetahs, shark and dinosaurs come to mind) yet we are able to change the space around us like no other species could.

What, then, made us different?

This is the second way: we became flexible. What we lacked in strength, dexterity or agility, we make up in our ability to adapt to any situation. In fact, you may even say that, thanks to our physical inability, we then are forced to rely on our flexibility to adapt. A shark, for instance, is perfectly suited for the underwater environment. A hawk for the sky. A tiger for land, and so on. It turned out that survival isn’t just about being the best at dominating any one environment. It’s being good at one and adaptable at many.

In the same sense, a solution that has more potentiality to change the plasticity of the the shape around it tends to not be:

  • The most specialized (shark == water, hawk == air)
  • Full-featured (shark and hawk == fully equipped for hunting)
  • Or novel (a shark can sense a drop of blood amongst a million parts of water, a hawk can see from afar)

Rather, it tends to be the most barebone but flexible. This kind of solution may not have enough elegance or economy to do much, but it’s also one which principle can be applied to many other areas.

An example: MySpace. Does it do every one of its function well? No. Is it exclusively targeted to a niche at its inception (for example, towards artists or musicians?) No. Is it fast, full featured or standard-compliant? No.

But does it provide an interface that’s malleable to the user’s heart’s content? Yes. In fact, customizing is one of its key strength that allowed it to became one of the key players. Does it have enough flexibility to adopt most of the user’s area of life? Absolutely.

Another example: Twitter. Can it play music, display elaborate profile, or even be customizable to a good extent? No. Can it display more than 140 characters at a time? Mostly, no. But does its service have enough flexibility that the user can utilize in almost every area of her life? Absolutely.

Take WordPress. Is it a proper content management system? No. Does it have all the power needed to do stuff specialized for blogging? No. But does it have enough flexibility to allow any user of fairly low web development level to write her own plugin and customize the look and feel and behavior to her heart’s content? Yes.

The empty frame, the blank box and the universal interface is all you need. The rest could be good enough. MySpace, Twitter and WordPress aren’t products with killer features, they’re good enough products with flexibility and accessibility.

In the word of my friend and fellow tweeple, Rodney Rumford (@Rumford):

Twitter vs. FB they are very dissimilar ecosytems. twitter is really quite astonishing in many ways. it is whatever you want it to B

Source.

]]>
http://blog.makerlab.com/2008/12/looking-at-solutions-from-the-ecologist%e2%80%99s-points-of-view/feed/ 1
Looking At Solutions From The Designer and Economist Points Of View http://blog.makerlab.com/2008/11/looking-at-solutions-from-the-designer-and-economist-points-of-view/ http://blog.makerlab.com/2008/11/looking-at-solutions-from-the-designer-and-economist-points-of-view/#comments Fri, 28 Nov 2008 08:56:37 +0000 http://blog.makerlab.com/?p=196 More often than not, solving all the problem coming our way simply isn’t possible due to budget and/or time constraints. But if we must choose which ones are worth our time and investment, and which ones don’t, how can we determine it?

On Looking At Solutions Spatially, I proposed the three dimensions that we can measure a solution by. The ultimate decision is always up to you, but the metric is there to help you qualify it.

To sum up, there are three points of view. These are represented by three colors and analogized by three occupations, respectively:

  • Magenta – The Economist: Looks at the financial and quantitative impact of the solution by asking “how many people can we reach with this solution, and at what cost?”
  • Cyan – The Designer: Looks at the elegance of the solution itself by asking “how much time will it take for me to develop, and can my user save by this solution?”
  • Yellow – The Ecologist: Looks at the potentiality of the solution to change the shape of the space around it by asking “how ‘plastic’ is my environment, and how far could I shift it by using the solution?”

Today, we’re going to look at the first two axis: the Designer (cyan) and Economist (magenta) – the challenge that faces them and the connections they share.

The Designer

This is how the Designer look at solutions:

  • Elegant solution takes less time to use, yet more time to develop
  • Hacked-together solution takes more time to use, yet less time to develop

Here’s the problem: these statements somewhat wrongly imply that the more time the designer spends on a solution, the more elegant it will become. Many designers I’ve met, through anecdotal evidences, say that they could only work on a solution for a set period of time before the quality of work and elegance of solution declines.

How elegant is a solution vs. how much time it takes?

This notion is strongly supported by a technique that many uses, defined by James Webb Young in A Technique for Producing Ideas and reinterpreted as thus:

  1. Define the problem
  2. Research it extensively
  3. Try out some solutions
  4. Forget about it (while “constantly thinking about it” or “letting the ideas marinate”)
  5. Eureka!

Webb then stated that, after trying some solutions out, one must stop the working of her conscious mind to let the unconscious “background process” do the work.

This means that there indeed is a certain time limit, a point in the equation when spending more time does not necessarily equal to creating more elegant solutions.

The Economist

The Economist also posits two things in connection to the Designer’s point of view:

  • Elegant solution that is friendly to the user’s mental model may impact more people, but cost more money to research
  • Hacked-together solution that is less-friendly to the user may impacts less people, but cost less money to research

But, much like time, there is a limit to how much money and resource (number of people) you can throw at a problem.
How far-reaching is a solution vs. how much money it takes?

This quote from Stacey Higginbotham of GigaOM summed it up:

As anyone who’s ever hosted a demolition party well knows, you can only throw so many workers at a problem before people start to linger at the edges, swill your alcohol and generally stop helping.

Implication

It turns out, then, that putting more money and resource into a project can only work so far. There is a certain point in the equation when spending more does not necessarily equal to creating more elegant solutions.

This, then, begs the questions:
Where does the critical point lie before solution’s impact and elegance declines?

  • Where in the process is this point located?
  • Is it possible to predict it or achieve a workable approximation?
  • If so, is it possible to stop the process right at this moment so we can avoid wasting unnecessary time and energy?

Caveats

  • Money and time tend to encourage most, but not all developments to be more far-reaching and elegant. A great solution does not have to cost a lot of be done over a long period
  • These two factors, in most cases, are thought of as two very strong factors that impacts problem-solving. But there are other factors that should also be taken into consideration, like experience, risk-taking tendency, political power and cultural considerations
Subscribe to Makerlab Blog's RSS feed with the click of a button. Yes - it is that easy.

Subscribe to the Makerlab Blog by RSS

]]>
http://blog.makerlab.com/2008/11/looking-at-solutions-from-the-designer-and-economist-points-of-view/feed/ 2
Looking At Solutions Spatially http://blog.makerlab.com/2008/11/a-different-way-of-looking-at-solutions/ http://blog.makerlab.com/2008/11/a-different-way-of-looking-at-solutions/#comments Wed, 26 Nov 2008 09:38:05 +0000 http://blog.makerlab.com/?p=140 Three-axis solution mapping

I like to think of a solution to problem as occupying a three-way axis.

Magenta: The Economist

An economist’s view on solution is reflected by the magenta line: how many people can a solution solve the problem for, and for what cost? The result is thus gauged with a classic “cost per capita” equation, where you would divide the last value against the first and measure a solution’s relative effectiveness by the number of people it can reach versus the amount of money it spent on research and production.

The paperclip, a relatively low-cost/low-tech solution that can solve many people’s organization problem, would rank high on the economist’s measure. Conversely, the one-of-a-kind Maserati, a relatively high-cost/high-tech solution that solves the age-old problem of driving in much of the same way that we have solved it before, would rank low.

This does not mean that the solution on the right are more “correct” than the one on the left. Rather, it is more specialized and tailored to a niche (and thus may actually solves the problem more effectively, even though it costs more money) than the more be-all, end-all solution that happens on the left side.

Cyan: The Designer

The cyan line represents a designer’s view on solution: how elegant is it? If I’m writing a code, how “beautiful” is it? How “readable”? How many lines do I need? How many variables and strings? This is gauged against how many hacks I need to use and undocumented behavior I need to call.

jQuery, a JavaScript library that would allow someone who writes HTML to specify events, behaviors and AJAX-style interactions with relatively little code, would be ranked high on elegance. The Ruby language, thanks to its “cleanliness” and “readability,” is also one. On the contrary, using a software that was made for a blogging engine to serve a Content Management System role (ahem, like WordPress) would score low.

On a more tangible note, the cyan line also concerns time. How long does it take me to use a particular tool to solve a problem? Going up on the measure does not necessarily mean a good thing. Sure, most elegant solution takes less time to assemble, but hacks are done for the same reason, too: because it is faster to do something unfamiliar in a familiar context, rather than doing something familiar in an unfamiliar context.

Q: Should I Always Aim For The Top–Rightmost Solutions?

A: Generally, yes, but consider that fact that being closer to the center does not mean that your solution is necessarily less effective. Much like traveling, the further you drive, the more likely you’ll get to a destination more interesting than where you started, but the more resource it will take to get there.

Abstraction: The First Middle Ground

Between the red and cyan line lies the uneasy middle ground we call “abstraction” (not drawn in the diagram.) Abstraction is a system that distances ideas from object. It’s famously exhibited in the Recycle Bin/Trash Can feature of a computer, where the actual object of the feature is to “overwrite bits of 1’s with 0’s from a hard drive’s map,” but the idea that we thought about is “erasing files” like we would compare it to “putting garbage in the trash can.” Hence, the metaphor.

As mentioned before, abstraction has a link with both with both the economist (magenta) and designer’s (cyan) measures. This is because almost always require less mental and physical energy to utilize (arrows tend to move up on cyan), but carries the risk of little impact to the people (if one fails to learn to associate the metaphor with an object. Arrows tend to move left on magenta.)

Yellow: The Ecologist

Several weeks ago, I talked to Anselm during one of our Sunday Makerlab session, wherein a colleague was posing a gap she saw in the distribution of unwanted foods that are still in great shapes (ie. unsold baked goods from the morning) to people who need it the most.

The group brainstormed a solution. What I saw was a discussion between choosing an interface device that is going to:

  • Be most accessible (the magenta measure) to as many restaurant, café and bakery owners as possible
  • Simultaneously aggregate as many resources available as possible (“I have fifty loaves of wheat bread”), pickup availability (“I happen to live one mile from the bakery”) and community’s needs (“the shelter at Alberta St. is occupied with more people than they usually handle”)—all while keeping it as simple as possible (the cyan measure.)

Until the discussion veered towards Twitter (as it tends to happen) and Anselm mentioned the fact that, no, Twitter is neither a revolution (tumblelog and the concept of Microblogging was described by why the lucky stiff on April, 2005) nor it is one that a large percentage of society—young and old, privileged and poor—equally adopted.

But it is one that changes the way people interact online, forever.

This, Anselm then remarked, is the idea of Plasticity. Plasticity means that any environment occupies a space (virtual or physical) and therefore can be changed, shifted and molded.

The tricky thing about plasticity, of course, is that one really does not know that one is going to shift a particular space until, through intricate play between many factors, the space shifted itself. Note how determining how many people could a solution reach (magenta) is fairly easy to measure, and determining how elegant a solution is (cyan) is easier still. The Plasticity (yellow) measure, then, operates much like how an Ecologist would: always concerned about webs of relationships.

Rethinking How We Approach A Solution

I remarked this then, and still fully believe it until now:

What if we consider our solution not just in terms of elegance or affect to people, but rather to the potentiality that it has to change the environment around people?

And ultimately what if we base all of our decision on that? On executing solutions that move away from indulging ourselves (cyan) or our target audience (magenta,) but rather, the space between us?

Subscribe to Makerlab Blog's RSS feed with the click of a button. Yes - it is that easy.

Subscribe to the Makerlab Blog by RSS

]]>
http://blog.makerlab.com/2008/11/a-different-way-of-looking-at-solutions/feed/ 1