Deer vs Plants

Deer vs Plants preview image

1 collaborator

Default-person Chris Caprette (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.4.0 • Viewed 134 times • Downloaded 1 time • Run 0 times
Download the 'Deer vs Plants' modelDownload this modelEmbed this model

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


WHAT IS IT?

The model explores the effect of deer on the success of native and invasive plants in a landscape and the effect of an enclosure to prevent deer browse.

HOW IT WORKS)

The deer move more-or-less randomly around the landscape and consume plants when they encounter them. Each deer has a 50% chance of moving each cycle.

Plants may be native or invasive, the numbers of each determined by the user. The user sets separate plant reproduction values for native and invasive plants which the model uses to determine the probability that a single plant of each type will reproduce. Whether or not a plant reproduces is determined by comparing that slider value to a random number. If the slider value is less than the random number, one plant of that type reproduces. If it is greater than or equal to the random number, then the plant does not reproduce. If a plant reproduces, then the number of that type of plant (native or invasive) goes up. Plants age and die with a maximum lifespan of 1000 ticks. Intial plant ages are randomized between 1 and 1000 and age at 1 unit per tick, but all new plants start at age 1. When plants die, they open spaces allowing new plants to take their place.

When the deer arrive on a patch, the model asks if there are any native or invasive plants in that patch. If there are no plants in the patch, then nothing changes. If there is a plant on the patch, then the model compares a randomly-generated probability to the deer-preference value set by the user. If the deer-preference value is less than the probability, then the deer eats the plant. If it is greater than or equal to the probability then the deer does not eat it. If the plant is eaten it is lost from the population and the number of that type of plant (native or invasive) goes down. Native plants are preferred by deer above 0.5 and invasives preferred below 0.5, with 0.5 meaning deer have no preference.

Users can place a 10 X 10 enclosure on the landscape which prevents deer from browsing any plants within it. Users can track the numbers of each type of plant over time displayed as counts for both the world overall and for the space inside the enclosure. Comparing these numbers can inform the user of the effect of the enclosure on plant populations. The model also plots the total number of natives and invasives over time.

HOW TO USE IT

  1. Using the number-of-deer slider set the number of deer.
  2. Using the deer-preference slider set the deer food preference. A value at 1.0 means that the deer only eat native plants and a value of 0 means that deer only eat invasive plants. At a value of 0.5 the deer show no preference.
  3. Using the number-of-natives and number-of-invasives sliders, set the number of native plants and the number of invasive plants.
  4. Use the natives-repro and invasives-repro sliders to set their respective reproduction. Higher values increase the likelihood the plant will reproduce if there are empty patches available, with a value of 1.0 meaning it certainly will.
  5. Press the Setup button. 6 Enable the enclosure? switch (on) if an enclosure is desired. At any time during the simulation you can turn the enclosure on or off. Deer cannot enter the enclosure.
  6. Press the Go button to begin the simulation.
  7. Watch the monitors and the plot to see how the plant populations change over time.
  8. Press the Go button again to stop the simulation.
  9. Pressing the Setup button clears the variables and resets the model.

Parameters NUMBER-OF-DEER: number of deer, this number does not change during a run unless the slider is changed DEER-PREFERENCE: deer preference for native plants versus invasive plants from 0-1 with 0.5 being no preference NUMBER-OF-NATIVES: initial number of native plants in the landscape NATIVES-REPRO: reproduction of native plants, higher means more likely to reproduce NUMBER-OF-INVASIVES: initial number of invasive plants in the landscape INVASIVES-REPRO: reproduction of invasive plants, higher means more likely to reproduce ECLOSURE?: this switch enables a 10 x 10 plot where deer cannot enter and browse plants

There are monitors, one each for native and invasive plant numbers, and one plot that graphs both native and invasive plant numbers over time.

THINGS TO NOTICE

Initially, there are no invasive plants in the area of the enclosure even if the enclosure isn't activated. This allows the user to compare an area cleared of invasive plants with and without an enclosure.

In the absence of deer, both native and invasive plants grow rapidly to fill the landscape until they reach equilibrium population sizes.

If you enable the enclosure with a deer inside it, the model still works but the deer will be stuck moving back and forth between two patches.

THINGS TO TRY

At first, try the model with extremes, such as only 1 or 2 deer compared to 50 to 100 deer, and then later model more subtle differences.

Play with different values for deer preference to see how deer browse affects native and invasive plant populations. Research shows that White-Tailed Deer prefer to browse native plants in a mixed plant community, but there are non-native plants that deer do seem to prefer (such as Hosta.)

Prior to the introduction of invasive plants to an area, the landscape of course only has native plants. Only a few invasive plants tend to show up at first. One way to model this is to max the number of native plants and only introduce a small number of invasive plants.

Design experiments testing different factors, such as different reproductive rates of native and invasive plants, different starting population sizes of native and invasive plants, running the model with and without the enclosure activated.

EXTENDING THE MODEL

(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)

NETLOGO FEATURES

(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)

RELATED MODELS

Other Netlogo models that simulate similar concepts:

Wolf-Sheep-Grass Rabbits-Grass-Weeds

CREDITS AND REFERENCES

Created by: Chris Caprette

Deer vs Plants © 2025 by Chris Caprette is licensed under CC BY-NC-SA 4.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/

This model is based loosely on:

Kelly, JF. 2019. Effects of overabundant deer and other factors in northern New Jersey. Forest Ecology and Management 444: 151-162.

Miller, et al. 2022. Overabundant deer and invasive plants drive widespread regeneration debt in eastern United States national parks. Ecological Applications, 2023(33): 1-24.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

;; defines the types of turtle agents
breed [invasives invasive] ;; creates the invasive plants
breed [natives native] ;; creates the native plants
breed [deer a-deer] ;; creates the herbivores, deer is both singular and plural so "a-deer" is used for one deer

natives-own [age max-life]
invasives-own [age max-life]
globals [ restricted-zone ]

;******************************* SETTING UP THE MODEL *************************************

to setup ;; what to do when the "Setup" button is pressed
  clear-all ;; clears all patches and turtles
  setup-patches ;; calls "setup-patches" procedure
  setup-deer ;; calls "setup-deer" procedure below
  setup-invasives ;; calls "setup-plants" procedure below
  setup-natives ;; calls the "setup-natives procedure below
  reset-ticks
end 

;; sets the patch properties background

to setup-patches
  ask patches
   [
    set pcolor 33 ;; sets the patch color to dark brown
   ]
  set restricted-zone patches with [ pxcor >= -5 and pxcor < 5 and pycor >= -5 and pycor < 5 ]

ask restricted-zone
  [
    ifelse enclosure?
    [ set pcolor black ]
    [ set pcolor 33 ]
]
end 

;; procedure to create the native plants and set their characteristics

to setup-natives
  create-natives number-of-natives ;; sets the number of natives according to the slider
  ask natives ;; sets the characteristics of the invasives
   [
    setxy random-xcor random-ycor ;; distributes the natives randomly
    set shape "plant" ;; gives them the plant shape
    set color 65 ;; sets the color to bright green
    set size 1.0 ;; makes them small
    set max-life 1000 ;; give them a maximum lifespan of 1000
    set age random max-life ;; set each turtles age between 0 and one half of max-life
  ]
end 

;; procedure to create the invasive plants and set their characteristics

to setup-invasives
  create-invasives number-of-invasives ;; sets the number of invasives according to the slider
    ask invasives ;; sets the characteristics of the invasives
    [
      setxy random-xcor random-ycor ;; distributes the invasives randomly
      set shape "plant" ;; gives them the plant shape
      set color 48 ;; sets the color to pale yellow
      set size 1.0 ;; makes them small
      set max-life 1000 ;; give them a maximum lifespan of 1000
      set age random max-life ;; set each turtles age between 0 and max-life
      while
       [
         member? patch-here restricted-zone
       ]
     [
      setxy random-xcor random-ycor
  ]
   ]
end 

;; procedure to create the deer and set their characteristics

to setup-deer
  create-deer number-of-deer ;; sets the number of deer according to the slider
  ask deer ;; gives the deer their characteristics
  [
    set shape "color_deer" ;; makes the turtles deer-shaped
    set color 28 ;; sets the color to a light orangish-brown
    set size 2 ;; makes them large enough to see clearly
    setxy random-xcor random-ycor ;; distributes the deer randomly
    while
    [
      member? patch-here restricted-zone
    ]
    [
      setxy random-xcor random-ycor
  ]
  ]
end 
;; end of the setup procedures

;;******************************* RUNNING THE MODEL **********************************
To go

  ask deer
  [
    move-deer ;; calls the "move-deer" procedure
    eat-plants ;; calls the "eat-natives" procedure
  ]

  ask natives
  [
    set age age + 1 ;; native plants grow older by 1
    if age > 1000 ;; 1000 is the maximum lifespan
    [
      die
    ]
  ]

  ask invasives
  [
    set age age + 1 ;; invasive plants grow older by 1
    if age > 1000 ;; 1000 is the maximum lifespan
    [
      die
    ]
  ]
tick
;end

ask restricted-zone
  [
    ifelse enclosure?
    [ set pcolor black ]
    [ set pcolor 33 ]
]

;;********************** PLANT REPRODUCTION ***************************

  let native-repro-prob random-float 1.0 ;; creates a random number between 0 and 1

  ;; controls reproduction of native plants calling on the slider
     if any? natives
    [
     let random-native one-of natives ;; limit number of invasives that can reproduce
     ask random-native
      [
       let empty-patches patches with
      [
       not any? turtles-here ;; checks the landscape for empty patches
      ]
        if any? empty-patches ; an empty patch has no plants or deer
      [
       if native-repro-prob < natives-repro ;; compares natives-repro to the random number
       [
        hatch 1
         [
          move-to one-of empty-patches ;; if there are empty patches the plant reproduces and moves new plant to the empty patch
          set age 1
         ]
       ]
      ]
     ]
    ]

  let invasive-repro-prob random-float 1.0 ;; creates a random number between 0 and 1


  ;; controls plant reproduction calling on the slider, sequence based on ticks
  if any? invasives
   [
     let random-invasive one-of invasives ;; limit number of invasives that can reproduce
     ask random-invasive
     [
      let empty-patches patches with
     [
      not any? turtles-here ; an empty patch has no plants or deer
     ]
        if any? empty-patches
       [
        if invasive-repro-prob < invasives-repro
         [
           hatch 1
         [
            move-to one-of empty-patches
            set age 1
         ]
        ]
       ]
      ]
    ]
end 

;; ********************* DEER STUFF ****************************

to move-deer
  let move-prob random-float 1.0
    ask one-of deer
    [
     ifelse move-prob < 0.5 and pcolor != black
    [
     right random 360
     forward 1 ;; move the deer in a random direction 1 unit
    ]
    [
      set heading heading - 180
      forward 2
    ]
  ]
end 

to eat-plants
  let eat-prob random-float 1.0

  let native-on-patch natives-here ;; check for native plants on a patch
    if any? native-on-patch ;; conditions the action based on presence of a native plant
      [
        ask one-of native-on-patch
      [
        if eat-prob < deer-preference ;; a deer-preference > 0.5 makes it more likely the deer will eat a native
          [
            die
          ] ;; if there is a native plant on a patch with a deer, then the native plant is consumed by the deer
       ]
      ]

  let invasive-on-patch invasives-here
    if any? invasive-on-patch ;; conditions the action based on the presence of an invasive plant
    [
      ask one-of invasive-on-patch
    [
      if eat-prob > deer-preference ;; a deer-preference of <0.5 makes it more likely the deer will eat an invasive
        [
          die
        ]
    ]
  ]
end 

There is only one version of this model, created 28 days ago by Chris Caprette.

Attached files

File Type Description Last updated
Deer vs Plants.png preview Preview for 'Deer vs Plants' 28 days ago, by Chris Caprette Download

This model does not have any ancestors.

This model does not have any descendants.