# Sunflower Emergent

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)

## WHAT IS IT?

This model shows the characteristic double spiral formation we see in many plants. Most plants have leaves that spiral up the stem, appearing as a double spiral when viewed from above. This same double spiral is also seen in flower heads such as sunflowers and pine cones.

The key idea is that the pattern emerges from simple physics--the minimization of repulsive energy. Neither evolutionary biology nor the geometry of angles are invoked in this model.

## HOW IT WORKS

The model is initialized with one particle in an inner ring around the origin.

At each tick of the model, a new particle is added and placed in a concentric ring, a fixed distance from the last ring.

The location of the new particle is determined in the following manner. Place 360 or more temporary particles on the ring, calculate the repulsive energy for each temporary particle by choosing one of two energy approximation methods, and choose the temporary particle has the minimum total repulsive energy. The rest of the temporary particles are then removed.

This model includes two different methods to approximate the total repulsive energy of a particle. Both methods are based on the assumption that particles that are closest to one another exert much more repulsive energy than particles that are further away. The first method assumes that the relationship between distance and repulsion is inverse, while the second assumes that it is one of exponential decay.

## HOW TO USE IT

The SETUP procedure places one particle at a distance of RING-DIST from the origin.

ADD-PARTICLE adds one new particle into the next concentric ring.

RING-DIST is the distance between successive rings.

The PARTICLE-SIZE is just the visual display size for the particles. It does not affect the growth placement pattern.

GO adds particles until the spiral reaches the edge of the world.

The FIXED-TEMPS? switch determines whether to use a fixed or variable number of temporary particles. If on, then 360 temporary particles are used. If off, then the number of particles increases with distance from the origin.

The SHOW-TEMPS? switch, if on, displays the temporary particles.

The ENERGY-APPROXIMATION chooser determines which energy approximation method is used. INVERSE DISTANCE uses the repulsive energy approximation 1/distance^ALPHA, and EXPONENTIAL uses the Born and Mayer repulsive energy approximation, e^(-distance/BETA). The ALPHA and BETA sliders determine the constants used in each of these approximations.

## THINGS TO NOTICE

Notice the double spiral pattern that emerges from these simple rules. Is the spiral pattern always the same with the same settings? Why or why not?

Do you notice any other patterns in the left and right handed spirals?

## THINGS TO TRY

Try varying the RING-DIST to get looser or tighter spirals.

Play with the various switches to visualize the temporary particles and the effect of different energy approximations.

## EXTENDING THE MODEL

Can you find a way to generate pleasingly colored spirals?

What happens if you allow some random perturbations in particle placement?

## NETLOGO FEATURES

Note the use of the `min-one-of`

primitive to find the temporary particle with the least repulsive energy.

## RELATED MODELS

Sunflower Sunflower Biomorphs

## CREDITS AND REFERENCES

This model is a replication of Victor Stenger's double spiral model in: Stenger, V. (2008). God: The Failed Hypothesis.

The double spiral patterns as seen in nature are described in: Ball, P. (1995). The Self-Made Tapestry.

Douady, S. and Couder, Y. (1992). Phyllotaxis as a Physical Self-Organized Process. Physical Review Letters, 68(13), 2098--2101.

Dove, M. T. Structure and Dynamics: An Atomic View of Materials. New York: Oxford University Press, 2003.

## HOW TO CITE

If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:

- Wilensky, U. (2009). NetLogo Sunflower Emergent model. http://ccl.northwestern.edu/netlogo/models/SunflowerEmergent. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.

## COPYRIGHT AND LICENSE

Copyright 2009 Uri Wilensky.

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

## Comments and Questions

breed [particles particle] breed [temp-particles temp-particle] globals [ num-temp-particles ] to setup clear-all set-default-shape particles "circle" set-default-shape temp-particles "circle" ;; place the first particle in an arbitrary location on the first ring create-particles 1 [ set size particle-size fd ring-dist set color yellow ] reset-ticks tick end ;; each tick we add just one new particle to go let ring-number count particles + 1 let dist ring-dist * ring-number if dist >= max-pxcor [ stop ] ;; stop when we get to the world edge ;; as radius gets bigger, we can either always use 360 temp particles, ;; or we can scale up based on the circumference of the ring let ntemps ifelse-value fixed-temps? [360] [round (dist * 30)] create-temp-particles ntemps [ set size 1 fd dist set color green ifelse show-temps? [ show-turtle ] [ hide-turtle ] ] set num-temp-particles count temp-particles ;; place the next particle at the location on the ring with least potential energy if energy-approximation = "inverse distance" [ let min-particle min-one-of temp-particles [sum ([1 / (distance myself) ^ alpha] of particles)] ask min-particle [ ;; ask the min-temp to create a clone that is a permanent particle hatch-particles 1 [ show-turtle set color yellow set size particle-size ] ] ] if energy-approximation = "exponential" [ let min-particle min-one-of temp-particles [sum [exp (- (distance myself) / beta)] of particles] ask min-particle [ ;; ask the min-temp to create a clone that is a permanent particle hatch-particles 1 [ show-turtle set color yellow set size particle-size ] ] ] ;; if we tick before killing off the temporary particles, they'll be visible ;; in the view. if show-temps? [ tick ] ask temp-particles [ die ] ;; kill off the temporary particles if not show-temps? [ tick ] end ; Copyright 2009 Uri Wilensky. ; See Info tab for full copyright and license.

There are 9 versions of this model.

## Attached files

File | Type | Description | Last updated | |
---|---|---|---|---|

Sunflower Emergent.png | preview | Preview for 'Sunflower Emergent' | over 10 years ago, by Uri Wilensky | Download |

This model does not have any ancestors.

This model does not have any descendants.