Growth [image of digits]

Growth by:Segregated Diffusion Limited Aggregation (DLA)

The user may select TOITALIZING rules or PATTERNED rules for encountering neighbors, which will cause a wandering agent to settle down (become fixed). There are three kinds of agents: CYAN, MAGENTA and YELLOW. Consequently segregated communities form depending on the RULES you write.
Agents may be deleted based upon their age (a % of the oldest) or the number of their neighbors.

 

XE6 Growth - 3 March 2016:

Rules have been rearranged and segregation rules have been corrected. Agent edit box counts agents as they are placed on the screen by the user.

Zoom has not been implemented. However images can be enlarged by integer multiples in PhotoShop using the "Nearest Neighbor (preserve hard edge)" option. See image sizing box as it appears when you first open it and how it should appear before you click "OK".

Here are examples of 3x enlargements of rule 7:
seeking 1 neighbor, agents from edge, colored by kind
seeking 1 neighbor, agents from edge, colored by age

seeking 1 neighbor, agents from anywhere, colored by kind
seeking 1 neighbor, agents from anywhere, colored by age

Executable
Source
Zipped

 

September 2008 Revised version which includes:
File Save and File Open (buggy)
Cyclical colorRamp() visualization

Executable
Source
Zipped

Some patterns:
a1.txt
a2.txt
a3.txt
a4.txt
a5.txt
a6.txt
a7.txt
a8.txt
a9.txt

 

You may select up to four PATTERNS (in order to keep things symmetrical) which will cause the agent to STICK.

All patterns are relative to the agent in the center.

"1" means there must be a fixed agent there.
"0" means there must be no fixed there.
"blank" means we don't care what's there.

To signify fewer than four patterns, duplicate one pattern to fill the grid.

You may select a variety of totalizing RULES in the ComboBox.

Executable
Source
Zipped

 

 
=
Agents colored by KIND. =========================== Agents colord by AGE.
Two views (shown actual size) of the same demographic pattern produced by different rules for different kinds:
CYAN wants to settle near X neighbors of xxx kind.
MAGENTA wants to settle near X neighbors of xxx kind.
YELLOW wants to settle near X neighbors of xxx kind.
Where X is set by the TrackBar and alternates between 2 and 3. The preference is set to 3 until settlement stops, then backed down to 2 to resume settlement. Once settlement resumes for a short while, the preference is again cranked up to 3. And so on...

Click on pictures for a 2x enlargement.
 
 
==
Agents colored by KIND. =========================== Agents colord by AGE.
Two views (shown actual size) of the same demographic pattern produced by a sequence of different historical epochs
in which totalizing RULES alternate with PATTERNS and preferences for KIND alternate with no preferences.

Click on pictures for a 2x enlargement.
 

Agents will settle when they find three empty spaces alongside them
giving rise
to the concentric pattern. The colored scribbles are the random path
taken by the agent currently looking for a place to settle.
Click on picture for a 2x enlargement.
 
Can you deconstruct the rules that created the following patterns?
==
 
==
 
==
 
==
 
 

 

Growth - 2006
Stick Exclusively to Horizontal or Vertical Edges
In this modification, an agent will only stick to a particular configuration of fixed agents, specifically a neighboring row or column of three fixed agents. MouseDown, MouseMove and MouseUp events are used to draw fixed agents on the screen. The code is generalized and can be easily modified to search for other patterns of neighboring agents.

The actual-size screen-grab above shows the complexity of the filling patterns. The colorRamp( ) function has been simplified to start at the Black end of the spectrum.

Growth by Diffusion Limited Aggregation
An Enhanced Version - 2006
Radio-Buttons have replaced the single buttons in the older version. An option has been added to start the agents either from the edges of the world or from anywhere within it. In addition, in this version the state of the world on the screen is recorded in a separate array the size of the screen, recording the pattern in case the Window is overlain by another Window and lost. A "sweet spot" is identified in the code where the conditions for "sticking" may be modified.

See the variations at the bottom of this page...

Growth by Diffusion Limited Aggregation
An Early Version
Agents introduced from the edge of the world wander, one at a time at random, until they meet a stationary agent. In this case, that seed agent was placed in the center. The self-similar fractal pattern shows the aggregation of 62,691 agents. The order of aggregation is represented by a color gradient. The path of each wandering agent may be hidden or shown in either white or along an additional color gradient. Re-rendering the display will obliterate the color pattern. See Garry William Flake's COMPUTATIONAL BEAUTY OF NATURE, figure 5.10, pages 74 and 75.

 

Some Variations Enlarged

Agents inserted from edges...
Agents inserted from anywhere...

Any
nieghbor

Any
neighbor
at least
10 older

Any
neighbor
at least
50 older
Any
neighbor
at least
95%
older
Same, but with reversed color ramp.