• BB512
  • 1 Welcome to BB512
    • 1.1 How to use this book
    • 1.2 Parts overview
    • 1.3 This website and other course materials
    • 1.4 Expectations
    • 1.5 Assessment
    • 1.6 Instructors
    • 1.7 Software
      • 1.7.1 Excel
      • 1.7.2 R and RStudio
    • 1.8 Schedule
  • Part 1: Evolution by Natural Selection
  • 2 The Blind Watchmaker
    • 2.1 Background
      • 2.1.1 Randomness and Selection
    • 2.2 Learning outcomes
    • 2.3 Worked example
      • 2.3.1 Inputs
      • 2.3.2 Steps
      • 2.3.3 Output and interpretation
    • 2.4 Your task
      • 2.4.1 The code
    • 2.5 How the simulation works
    • 2.6 Questions
    • 2.7 Takeaways
  • 3 Bug hunt camouflage (NetLogo)
    • 3.1 Background
    • 3.2 Learning outcomes
    • 3.3 Your task
      • 3.3.1 How the simulation works
      • 3.3.2 Predict first
      • 3.3.3 Getting started
      • 3.3.4 Measure your hunting efficiency
    • 3.4 Questions
    • 3.5 Details about colours (optional)
    • 3.6 Takeaways
  • Part 2: Population Growth Models
  • 4 Geometric growth
    • 4.1 Background
    • 4.2 Worked example
      • 4.2.1 Inputs
      • 4.2.2 Steps
      • 4.2.3 Output and interpretation
    • 4.3 Your task
    • 4.4 Questions
    • 4.5 Takeaways
  • 5 Estimating Population Growth Rate
    • 5.1 Background
    • 5.2 Worked example
      • 5.2.1 Inputs
      • 5.2.2 Steps
      • 5.2.3 Output and interpretation
    • 5.3 Your task
    • 5.4 Questions
    • 5.5 Takeaways
  • 6 Stochastic population growth
    • 6.1 Background
    • 6.2 Worked example
      • 6.2.1 Inputs
      • 6.2.2 Steps
      • 6.2.3 Output and interpretation
    • 6.3 Your task
    • 6.4 Simulations in R
      • 6.4.1 Example stochastic trajectories
    • 6.5 Things to try
    • 6.6 Questions
    • 6.7 Takeaways
  • 7 Basic logistic population growth
    • 7.1 Background
    • 7.2 Worked example
      • 7.2.1 Inputs
      • 7.2.2 Steps
      • 7.2.3 Output and interpretation
    • 7.3 Your Task
      • 7.3.1 Graph 1: Population Size Through Time
      • 7.3.2 Graph 2: Per Capita Growth Rate vs. Population Size
      • 7.3.3 Reflection on Graph 2
    • 7.4 Takeaways
    • 7.5 Questions
    • 7.6 Optional: Do this in R.
  • 8 Deeper into Logistic Growth
    • 8.1 Background
      • 8.1.1 Linking Logistic and Exponential Growth Models
    • 8.2 Worked example
      • 8.2.1 Inputs
      • 8.2.2 Steps
      • 8.2.3 Output and interpretation
    • 8.3 Your Task
    • 8.4 Questions
    • 8.5 Takeaways
  • 9 Life tables and survivorship types
    • 9.1 Background
    • 9.2 Notation
    • 9.3 Worked example
    • 9.4 Your task
      • 9.4.1 Life table
      • 9.4.2 Survivorship curves
    • 9.5 Questions
    • 9.6 Takeaways
  • 10 Matrix population modelling
    • 10.1 Background
    • 10.2 Your task
    • 10.3 Using R for matrix modelling
      • 10.3.1 Package setup
    • 10.4 Projecting the population
      • 10.4.1 What the projection does
      • 10.4.2 Does the starting population matter?
      • 10.4.3 Growth rate and stable stage distribution
    • 10.5 Elasticity
    • 10.6 In silico experiments: changing the life cycle
    • 10.7 Your investigation
      • 10.7.1 An evolutionary experiment (homework, optional)
      • 10.7.2 Questions
    • 10.8 Takeaways
  • 11 Pre- and Post-reproduction census
    • 11.1 Background
    • 11.2 Learning outcomes
    • 11.3 Worked example
      • 11.3.1 The life history
      • 11.3.2 Post-breeding census
      • 11.3.3 Pre-breeding census
      • 11.3.4 Comparing the two
    • 11.4 A common mistake
    • 11.5 Your task
    • 11.6 Takeaways
  • 12 Life Table Response Experiments
    • 12.1 Background
    • 12.2 Learning outcomes
    • 12.3 Set up
    • 12.4 A worked example
      • 12.4.1 Comparing matrices
      • 12.4.2 Sensitivity: how much does \(\lambda\) change when one element changes?
      • 12.4.3 Contributions from individual matrix elements
      • 12.4.4 Interpreting the contributions
    • 12.5 Retrospective vs prospective analyses
    • 12.6 Your task
    • 12.7 Takeaways
  • 13 How many eggs should a bird lay?
    • 13.1 Background
    • 13.2 Before you start: predict
    • 13.3 Your task
    • 13.4 Assumptions
    • 13.5 Questions
    • 13.6 Takeaways
  • 14 Trade-offs and the declining force of selection
    • 14.1 Background
    • 14.2 Before you start: predict
    • 14.3 Your task
    • 14.4 Exploring different life history strategies
    • 14.5 Questions
    • 14.6 Takeaways
  • 15 Matrix Population Models (MPMs): Projection and Simulation
    • 15.1 Learning outcomes
    • 15.2 What is a matrix population model?
    • 15.3 The projection interval (\(\Delta t\))
    • 15.4 The population vector
    • 15.5 The projection matrix
    • 15.6 A simple 3-stage model
    • 15.7 Projection: projecting \(\mathbf{n}_t\) forward
    • 15.8 Define vital rates and build \(\mathbf{A}\)
    • 15.9 Define an initial population vector \(\mathbf{n}_0\)
    • 15.10 One-step projection
    • 15.11 Project for many years (deterministic)
      • 15.11.1 Plot totals and stage trajectories
    • 15.12 Long-term growth rate (\(\lambda\))
    • 15.13 Simulation: adding stochasticity and management actions
      • 15.13.1 Writing the simulation once, as a function
      • 15.13.2 One simulated trajectory (no culling)
      • 15.13.3 Add a culling intervention
      • 15.13.4 Many replicates (uncertainty bands)
    • 15.14 Your task
      • 15.14.1 Exercise 1: Projection interval sanity check
      • 15.14.2 Exercise 2: Change one vital rate and re-run projections
      • 15.14.3 Exercise 3: Culling as management
      • 15.14.4 Exercise 4: Contraception treatment (reduced fertility)
      • 15.14.5 Exercise 5 (optional): Environmental stochasticity
    • 15.15 Takeaways
    • 15.16 Notes and extensions
  • Part 3: Population Genetics and Evolution
  • 16 Hardy-Weinberg equilibrium
    • 16.1 Background
    • 16.2 Assumptions of Hardy-Weinberg Equilibrium
    • 16.3 Worked example
    • 16.4 Your task
      • 16.4.1 Problem #1.
      • 16.4.2 PROBLEM #2.
      • 16.4.3 Problem #3.
      • 16.4.4 Problem #4.
    • 16.5 Takeaways
  • 17 The Gene Pool Model
    • 17.1 Background
    • 17.2 Your task
      • 17.2.1 The model and its assumptions
    • 17.3 Part 1: A simple model
      • 17.3.1 The gene pool
      • 17.3.2 Projecting allele frequency over one time step
    • 17.4 Part 2: Simulation of allele frequency through time
    • 17.5 Part 3: Many populations
      • 17.5.1 Rare alleles and new mutations
    • 17.6 Part 4: Bottlenecks and founder effects
      • 17.6.1 Founder effects (optional)
    • 17.7 Conclusions
    • 17.8 Takeaways
  • 18 Neutral or Adaptive Evolution in Humans: What Drives Evolution of Our Traits?
    • 18.1 Background
    • 18.2 Key idea
    • 18.3 Your task (30 minutes)
      • 18.3.1 The traits
    • 18.4 Discussion (10 minutes)
    • 18.5 Takeaways
  • 19 Writing Short Answers
    • 19.1 What examiners look for
    • 19.2 Paragraph structure
      • 19.2.1 A worked example
    • 19.3 Mark three answers yourself
      • 19.3.1 Answer A
      • 19.3.2 Answer B
      • 19.3.3 Answer C
    • 19.4 Now write your own (15 minutes)
    • 19.5 Takeaways
  • 20 Heritability from a linear regression
    • 20.1 Background
    • 20.2 Before you start: predict
    • 20.3 Your Task
      • 20.3.1 Estimating heritability (15 minutes)
      • 20.3.2 Comparative Analysis (10 minutes)
      • 20.3.3 Assumptions (10 minutes)
    • 20.4 Takeaways
  • Part 4: Interactions Between Species and Community Structure
  • 21 Lotka-Volterra competition
    • 21.1 Background: the model and its isoclines
    • 21.2 Key idea
    • 21.3 Your task
      • 21.3.1 The questions
    • 21.4 Takeaways
  • 22 Lotka-Volterra predator-prey dynamics
    • 22.1 Background
    • 22.2 Key idea
    • 22.3 Your task
    • 22.4 Optional extras
    • 22.5 R-version
      • 22.5.1 References
    • 22.6 Takeaways
  • 23 Continuous-time Lotka-Volterra Predator-Prey Model in R
    • 23.1 Background
    • 23.2 What you should see
    • 23.3 Your task
      • 23.3.1 Step 0: Create a new script
      • 23.3.2 Step 1: Load Necessary Libraries
      • 23.3.3 Step 2: Define the Model
      • 23.3.4 Step 3: Set Parameters and Initial Conditions
      • 23.3.5 Step 4: Simulate the Model
      • 23.3.6 Step 5: Visualise the Dynamics
      • 23.3.7 Questions
      • 23.3.8 Conclusion
    • 23.4 Takeaways
  • 24 Discrete-time Lotka-Volterra Predator-Prey Model in R
    • 24.1 Key idea
    • 24.2 Introduction
    • 24.3 Step 1: Define the Model
    • 24.4 Step 2: Set Parameters and Initial Conditions
    • 24.5 Step 3: Simulate the Model
    • 24.6 Step 4: Visualise the Dynamics
      • 24.6.1 Population Dynamics Over Time
      • 24.6.2 Phase Plot with ZNGIs
    • 24.7 Your task
    • 24.8 Conclusion
    • 24.9 Takeaways
  • Part 5: Animal behaviour, altruism and sexual selection
  • 25 Game theory: Hawks and doves
    • 25.1 Background
    • 25.2 Worked example
      • 25.2.1 Inputs
      • 25.2.2 Steps
      • 25.2.3 Output and interpretation
    • 25.3 Your task
    • 25.4 The payoff table
      • 25.4.1 What does theory predict?
      • 25.4.2 Hypotheses
      • 25.4.3 Instructor setup (before class)
      • 25.4.4 How today’s data collection works
      • 25.4.5 GAME ONE: repeated partner
      • 25.4.6 GAME TWO: changing partners every round
      • 25.4.7 Watching the results live
    • 25.5 Summarise and discuss results
    • 25.6 Acknowledgement
    • 25.7 Takeaways
      • 25.7.1 Optional: running a live dashboard in R
  • Part 6: Solutions/answers
  • 26 Solutions and “take-home” messages
    • 26.1 How to use this section
    • 26.2 Solutions: The blind watchmaker
    • 26.3 Solutions: Bug hunt camouflage
    • 26.4 Solutions: Geometric growth
    • 26.5 Solutions: Estimating Population Growth Rate
    • 26.6 Solutions: Stochastic population growth
      • 26.6.1 Things to try
      • 26.6.2 Questions
    • 26.7 Solutions: Basic logistic population growth
      • 26.7.1 Graph 1: Population size through time
      • 26.7.2 Graph 2: Per capita growth rate vs. population size
      • 26.7.3 Reflection
    • 26.8 Solutions: Deeper into logistic growth
      • 26.8.1 Relationship between Logistic and Exponential growth equations
      • 26.8.2 Task 1: Type of dynamics depends on \(r_m\)
      • 26.8.3 Task 2: Per capita growth rate vs. population size (Figure 2)
      • 26.8.4 Task 3: Population growth rate vs. population size (Figure 3)
      • 26.8.5 Task 4: Comparison with exponential growth
      • 26.8.6 Task 5: Time lag
      • 26.8.7 \(N_{t+1}\) vs. \(N_t\)
      • 26.8.8 Chaotic dynamics
    • 26.9 Solutions: Life tables and survivorship types
      • 26.9.1 Answers to the questions
    • 26.10 Solutions: Matrix population modelling
      • 26.10.1 Model answers for the matrix modelling practical
    • 26.11 Solutions: Pre- and Post-reproduction census
    • 26.12 Solutions: Life Table Response Experiments
    • 26.13 Solutions: How many eggs should a bird lay?
    • 26.14 Solutions: Trade-offs and the force of selection
    • 26.15 Solutions: Matrix Population Models (MPMs): Projection and Simulation
    • 26.16 Solutions: Hardy-Weinberg equilibrium
      • 26.16.1 Problem 1
      • 26.16.2 Problem 2
      • 26.16.3 Problem 3
      • 26.16.4 Problem 4
    • 26.17 Solutions: Gene pool model
      • 26.17.1 Part 2: Drift through time
      • 26.17.2 Part 3: Many populations
      • 26.17.3 Part 4: Bottlenecks and founder effects
      • 26.17.4 Conclusions
    • 26.18 Solutions: Neutral or adaptive evolution in humans
      • 26.18.1 Suggested placements
      • 26.18.2 Gene flow between populations
      • 26.18.3 Discussion questions
    • 26.19 Solutions: Heritability
    • 26.20 Solutions: Lotka-Volterra competition
    • 26.21 Solutions: Lotka-Volterra predator-prey dynamics
    • 26.22 Solutions: Continuous-time Lotka-Volterra predator-prey model in R
    • 26.23 Solutions: Discrete-time Lotka-Volterra predator-prey model in R
    • 26.24 Solutions: Game theory: Hawks and doves
    • 26.25 Solutions: The legend of Ambalappuzha
    • 26.26 Solutions: From population biology to fitness
    • 26.27 Solutions: From plain English to a matrix model
    • 26.28 Solutions: Continuous traits from discrete genes
  • 27 Results of the hawk-dove games
    • 27.1 Game 1: the same partner for 15 rounds
      • 27.1.1 Does being hawkish pay with a fixed partner?
    • 27.2 Game 2: a new partner every round
    • 27.3 Comparing the two games
  • Part 7: Appendix - extras
  • 28 Exponential growth in detail
    • 28.0.1 Nomenclature
    • 28.1 Discrete time model
      • 28.1.1 Calculating N for any future time point
      • 28.1.2 Applying the model
    • 28.2 Real-World Application: Breeding Pairs of Merlin (Falco columbarius)
      • 28.2.1 Observations and Context
      • 28.2.2 Applying the Exponential Growth Model
    • 28.3 Continuous time model
      • 28.3.1 Doubling time
      • 28.3.2 Changing the time scale
      • 28.3.3 Zero population growth
  • 29 The legend of Ambalappuzha
    • 29.1 Animals/plants, not grains of rice
      • 29.1.1 Quick exercise (optional)
      • 29.1.2 Discussion prompts
    • 29.2 Optional: Try these calculations in R
  • 30 From population biology to fitness
    • 30.1 An in silico experiment
    • 30.2 The link to fitness
    • 30.3 Introducing a trade-off
  • 31 From plain English to a matrix model
    • 31.1 Background
    • 31.2 Worked example
      • 31.2.1 Inputs
      • 31.2.2 Steps
      • 31.2.3 Output and interpretation
    • 31.3 Your task
    • 31.4 Takeaways
  • 32 Continuous traits from discrete genes
    • 32.1 Background
    • 32.2 Worked example
      • 32.2.1 Inputs
      • 32.2.2 Steps
      • 32.2.3 Output and interpretation
    • 32.3 Your task
    • 32.4 Takeaways
  • 33 Building a phylogenetic tree
    • 33.1 Background
    • 33.2 Key idea
    • 33.3 Worked example
    • 33.4 Your task
    • 33.5 Takeaways
  • Published with bookdown

BB512 - Population Biology and Evolution

3 Bug hunt camouflage (NetLogo)

3.1 Background

Adaptive evolution via natural selection is a fundamental concept in evolutionary biology and is one of the central mechanisms driving the diversity of life on Earth. This process is shaped by the interplay between variation in heritable traits within a population, differential survival and reproduction rates, and the environmental challenges faced by organisms. One illustrative example of natural selection is the phenomenon of camouflage in predator-prey systems.

In an environment where predators rely on visual cues to locate their prey, individuals with better camouflage that matches their surroundings are more likely to avoid detection and capture, leading to higher survival rates. Over generations, the frequency of camouflage traits increases in the prey population due to higher survival and increased reproduction of well-camouflaged individuals.

On the other hand, predators with better detection skills, like keen eyesight, are more successful at capturing prey, leading to increased survival and reproduction of these individuals. Consequently, traits associated with effective predation also become more prevalent in the predator population. This dynamic interplay between camouflage in prey and predator detection abilities exemplifies the power of natural selection in driving the adaptation and evolution of species to their ecological niches.

3.2 Learning outcomes

Learning outcomes:

  • Understand adaptive evolution via natural selection.
  • Identify the four conditions for evolution by natural selection in a model.
  • Explain how fitness depends on the environment.
  • Use the terms adaptation, selection, selection pressure, and heritability correctly.

3.3 Your task

In this exercise, you will use an individual-based simulation to examine adaptive evolution and natural selection, exploring how living organisms can undergo transformations to better survive and thrive in their environments. You step into the role of a predatory bird and hunt bugs living in a virtual landscape. You will see how the colours of the bugs (“traits”) influence their survival. The bugs that blend into their surroundings have a higher chance of avoiding detection, leading to greater survival and more opportunities to pass on their advantageous traits to future generations.

The exercise is done using one of the built-in models in a computer program called NetLogo (https://ccl.northwestern.edu/netlogo/).

There are two ways to use NetLogo: (1) You can log in to our SDU UCloud computing system at https://cloud.sdu.dk/, and use it there; (2) You can download and install NetLogo from the site above.

I recommend the UCloud option: Please follow these steps: (i) search for NetLogo in the search bar at the top of the screen; (ii) click on Applications and then on the NetLogo icon; (iii) click on “Run Application”; (iv) Give your job a name (e.g., “BB512”) and under “Hours” enter 1 hour; (v) under Machine Type, select “u1-standard-1”; (vi) click on Submit. After a few moments while UCloud is preparing your job, a new screen appears. Click on Open Interface to open a virtual desktop. There, you can open NetLogo and use it as if it was on your own computer by clicking on its icon.

Open NetLogo and click File > Models Library. You can then use the search box at the bottom of the screen to find the model called “Bug Hunt Camouflage”.

This is a model of natural/artificial selection that shows how a population hunted by a predator can develop camouflaging. For example, in a forest with green leaves, green bugs may emerge as the predominant bug colour.

In the simulation you assume the role of a predatory bird that feeds on insects, which can be different colours. You will see what effect your hunting has on the colour traits/genetics of these simulated insects, and also how this evolution affects your hunting efficiency.

3.3.1 How the simulation works

Read this before you start, so that you know what the model does (and does not) include.

The simulation starts with bugs of random colours. Each bug has three pigment “genes” (red, green and blue) that together set its colour (see “Details about colours” at the end).

The model makes these assumptions:

  • Constant population size. Each time you catch a bug, one of the surviving bugs is chosen at random to produce one offspring, so the number of bugs stays at the carrying capacity.
  • Asexual reproduction. An offspring has a single parent and inherits its colour genes.
  • Small mutations. Each of the offspring’s three colour genes can differ slightly from the parent’s. The “max-mutation-step” slider sets the largest possible difference: each gene can move up or down by any amount up to that value, with small changes more likely than large ones.
  • Offspring appear near their parent, within the distance set by the “offspring-distance” slider.
  • Newborn bugs start very small and grow to full size over time.
  • Bugs do not move, and the predator (you) is the only cause of death.

So if you consistently catch (e.g.) non-reddish bugs, the reddish bugs that remain will have offspring that are also reddish, and the average colour of the population will shift towards red.

In the lecture, evolution was defined as: “change in the heritable characteristics [colour traits] of biological populations [bugs] over successive generations [time].”

3.3.2 Predict first

Before you run the model, write down your predictions:

  1. What will happen to the average colour of the bugs after you have hunted for two minutes on one background?
  2. What will happen to the time it takes you to catch 10 bugs?
  3. What will happen when you then switch to a different background?

You will check these predictions against what you observe.

3.3.3 Getting started

  1. When you open the model, you will see a screen with various purple and green “sliders”, buttons and menus that control parts of the model.
  2. Start with 30 bugs, by moving the “carrying-capacity” slider until it reads 30.
  3. Now click “setup”. You should see the environment appear on the right hand side, and you should see a few “bugs” on the environment. Start the simulation by clicking “go”.
  4. After you click go, you need to click on bugs as fast as you can using your mouse/track pad. You can also keep the mouse button depressed, and move the cursor around the world to catch the bugs. Try to consume bugs as fast as possible to remove any “deliberation” on your part as a predator. The camouflaging effect will emerge more clearly if you aren’t taking your time trying to find bugs that typically would be more difficult to find.

You can track your progress by looking at the graphs on the left. The most useful are (1) the number of bugs caught through time, (2) the time taken to catch each batch of 10 bugs, and (3) the average colour values of the bugs.

In the “Bugs Caught vs. Time” plot the slope of the curve gives a good idea of your hunting efficiency: the faster you can catch bugs, the steeper the slope. If you didn’t catch any bugs for a while, the slope would be horizontal.

You should notice that bugs with contrasting colours (e.g. black on white) are easier to catch. Keep hunting for 2 minutes, then pause the simulation by clicking “go” again. Now take a look at the graphs and see what effect your hunting has had on the colours in the population.

3.3.4 Measure your hunting efficiency

Use the “Time to catch 10 bugs” plot to put numbers on your hunting efficiency. Record:

Time to catch 10 bugs
First 10 bugs
Last 10 bugs before you switch background
First 10 bugs after you switch background
Last 10 bugs on the new background

Compare your numbers with your neighbour’s. They will differ (you are different predators!), but is the pattern the same?

Your catch time does not depend only on the bugs. Apart from bug evolution, what else could change how long it takes you to catch 10 bugs? Which of the plots gives more direct evidence that the bugs themselves have evolved?

3.4 Questions

Answer the following questions, then make sure you confirm your understanding and have the right answers with an instructor.

  • What happens to the average colour of the bug population with time as you hunt? Was your prediction correct?
  • What happens to your hunting efficiency? Use your measurements.
  • Would you say that the bug population becomes worse or better adapted to their environment?
  • Can you explain how this happens?
  • After simulating in one environment (e.g. poppy field) for a few minutes, pause then switch to another environment. Are the bugs now well- or poorly-adapted to their environment?
  • Do the genotypes of individuals change (e.g. with individual age)? Switch on “show-genotype?” and watch a few individual bugs for 30 seconds to find out.
  • Increasing the “max-mutation-step” makes bug offspring less like their parents. How do you think this will influence the speed of adaptation of the bugs?
  • In the lecture we met four conditions for evolution by natural selection: (1) individuals vary in a trait, (2) individuals vary in reproductive success, (3) the trait affects reproductive success, and (4) the trait is inherited. Where do you see each of these in the model? Where does new variation come from?
  • Newborn bugs start very small. Could this let some bugs escape for reasons that have nothing to do with their colour? How might that affect the results?
  • How does this model differ from a real predator–prey system? Give at least two differences.

Some useful keywords:

  • Selection
  • Adaptation
  • Selection pressure
  • Heritability (how much of the variation in a trait among individuals is passed on from parents to offspring; you will meet a more precise definition in Part 3)

Optional extension: gene flow and local adaptation

In the lecture we saw that gene flow can swamp local adaptation. You can explore this with the “offspring-distance” slider, which sets how far from its parent an offspring can appear.

  1. Choose the background with the most distinct patches of different colour.
  2. Set “offspring-distance” to a small value and hunt for a few minutes. Use “flash” or “clear-background” to see where the bugs are. Do bugs in different patches come to match their own patch?
  3. Repeat with a large “offspring-distance”. What happens now, and why?

3.5 Details about colours (optional)

Each bug has three pigment genes: red, green and blue. Each gene has a value from 0 to 100, which sets how strongly that pigment is expressed. Switch on “show-genotype?” to see each bug’s values; for example, 40-100-24 means red at 40%, green at 100% and blue at 24%. The three pigments are mixed, as in the pixels of a TV or computer screen, to give the bug’s colour. A bug with a lot of red but little green or blue looks red.

The plots summarise colour in a different way, as hue, saturation and brightness (Fig 3.1):

  • Hue is the position around the colour wheel: red, through orange, yellow, green and blue, and back to red.
  • Saturation is how vivid the colour is. Low saturation gives washed-out colours (greys, and white at full brightness).
  • Brightness is how light or dark the colour is. A brightness of 0 is black, whatever the hue.
Hue, brightness and saturation

Figure 3.1: Hue, brightness and saturation

If this figure does not display in your browser, open it directly here: Hue, brightness and saturation diagram.

Read more about the model here: http://ccl.northwestern.edu/netlogo/models/BugHuntCamouflage

3.6 Takeaways

  • Selection changes trait distributions when survival depends on the environment.
  • All four conditions for evolution by natural selection are present in the model; mutation supplies the new variation.
  • Adaptation is context-dependent: a well-adapted population can become poorly adapted when conditions change.
  • Heritability and mutation govern how quickly populations can respond to selection pressure.