The Future of Faith: An Agent-Based Exploration of Religious Trends

The Future of Faith: An Agent-Based Exploration of Religious Trends preview image

This model is seeking new collaborators — would you please help?

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.4.0 • Viewed 1 time • Downloaded 0 times • Run 0 times
Download the 'The Future of Faith: An Agent-Based Exploration of Religious Trends' modelDownload this modelEmbed this model

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


Info tab cannot be displayed because of an encoding error

Comments and Questions

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

Click to Run Model

; 2025–2100 simulation of 5 religions

globals [
  year
  islam-count
  christianity-count
  hinduism-count
  buddhism-count
  secularism-count
  label-added?
]

patches-own [
  dominant-religion
]

turtles-own [
  age
  religion
  conviction  ; strength of belief (0 to 1)
]

to setup
  clear-all
  resize-world -16 16 -16 16

  set year 2025
  set label-added? false

  ; Define religion zones
  ask patches [
    let px pxcor
    let py pycor
    set dominant-religion ""

    if px < -2 and py < -2 [ set dominant-religion "Islam" set pcolor green ]
    if px < -2 and py > 2  [ set dominant-religion "Christianity" set pcolor blue ]
    if px > 2 and py > 2   [ set dominant-religion "Buddhism" set pcolor yellow ]
    if px > 2 and py < -2  [ set dominant-religion "Hinduism" set pcolor orange ]

    if dominant-religion = "" [
      set dominant-religion "Secularism"
      set pcolor gray
    ]
  ]

  ; Add labels for each zone
  if not label-added? [
    ask patch -12 -12 [ set plabel "\n\nIslam" set plabel-color white ]
    ask patch -12 12  [ set plabel "\n\nChristian" set plabel-color white ]
    ask patch 12 12   [ set plabel "\n\nBuddhist" set plabel-color black ]
    ask patch 12 -12  [ set plabel "\n\nHindu" set plabel-color black ]
    ask patch 0 0     [ set plabel "\n\nSecular" set plabel-color white ]
    set label-added? true
  ]

  ; create population from real-world percentages
  let religion-proportions [
    ["Christianity" 31.6]
    ["Islam" 25.8]
    ["Hinduism" 15.1]
    ["Buddhism" 6.6]
    ["Secularism" 20.9]
  ]

  let total-pop 1000
  let built-pop 0

  foreach religion-proportions [ rpt ->
    let rname item 0 rpt
    let rpercent item 1 rpt
    let rcount round ((rpercent / 100) * total-pop)
    repeat rcount [
      create-turtles 1 [
        set age random 80
        setxy random-xcor random-ycor
        set religion rname
        set conviction random-float 1
        set shape "person"
        update-color
      ]
      set built-pop built-pop + 1
    ]
  ]

  if built-pop < total-pop [
    repeat (total-pop - built-pop) [
      create-turtles 1 [
        set age random 80
        setxy random-xcor random-ycor
        set religion one-of ["Christianity" "Islam" "Hinduism" "Buddhism" "Secularism"]
        set conviction random-float 1
        set shape "person"
        update-color
      ]
    ]
  ]

  update-counts
  reset-ticks
end 

to go
  if year >= 2150 [ stop ]

  ask turtles [ interact ]

  ask turtles [
    set age age + 1
    if age > 85 or random-float 1 < (age / 5000) [ die ]

    let birth-rate 0.02
    if religion = "Islam" [ set birth-rate 0.031 ]
    if religion = "Christianity" [ set birth-rate 0.025 ]
    if religion = "Hinduism" [ set birth-rate 0.024 ]
    if religion = "Buddhism" [ set birth-rate 0.016 ]
    if religion = "Secularism" [ set birth-rate 0.017 ]

    if random-float 1 < birth-rate [
      hatch 1 [
        set age 0
        set conviction [conviction] of myself + random-float 0.2 - 0.1
        if conviction < 0 [ set conviction 0 ]
        if conviction > 1 [ set conviction 1 ]
        set religion [religion] of myself
        set shape "person"
        setxy random-xcor random-ycor
        update-color
      ]
    ]

    rt random 60 - 30
    fd 1
  ]

  set year year + 1
  update-counts
  tick
end 

to interact
  let voisins turtles in-radius 2 with [self != myself]
  if any? voisins [
    let strongest max-one-of voisins [conviction]
    if [religion] of strongest != religion and [conviction] of strongest > conviction [
      let prob ([conviction] of strongest - conviction) * 0.5
      if random-float 1 < prob [
        set religion [religion] of strongest
        set conviction [conviction] of strongest * 0.8
        update-color
      ]
    ]
  ]
end 

to update-color
  if religion = "Islam" [ set color green ]
  if religion = "Christianity" [ set color blue ]
  if religion = "Hinduism" [ set color orange ]
  if religion = "Buddhism" [ set color yellow ]
  if religion = "Secularism" [ set color gray ]
end 

to update-counts
  set islam-count count turtles with [religion = "Islam"]
  set christianity-count count turtles with [religion = "Christianity"]
  set hinduism-count count turtles with [religion = "Hinduism"]
  set buddhism-count count turtles with [religion = "Buddhism"]
  set secularism-count count turtles with [religion = "Secularism"]

  set-current-plot "Belief Populations"

  set-current-plot-pen "Islam"
  ifelse show-islam [ plot islam-count ] [ plot 0 ]

  set-current-plot-pen "Christianity"
  ifelse show-christianity [ plot christianity-count ] [ plot 0 ]

  set-current-plot-pen "Hinduism"
  ifelse show-hinduism [ plot hinduism-count ] [ plot 0 ]

  set-current-plot-pen "Buddhism"
  ifelse show-buddhism [ plot buddhism-count ] [ plot 0 ]

  set-current-plot-pen "Secularism"
  ifelse show-secularism [ plot secularism-count ] [ plot 0 ]
end 

There is only one version of this model, created about 13 hours ago by Abdessalem Djoudi.

Attached files

File Type Description Last updated
The Future of Faith: An Agent-Based Exploration of Religious Trends.png preview Preview for 'The Future of Faith: An Agent-Based Exploration of Religious Trends' about 13 hours ago, by Abdessalem Djoudi Download

This model does not have any ancestors.

This model does not have any descendants.