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 245 times • Downloaded 2 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.)


WHAT IS IT?

This is an agent-based model that simulates the evolution of world religious beliefs from 2025 to 2150.
It explores how religions grow or decline over time through birth rates, social influence, conversion, and mortality.
The five main belief systems represented are Islam, Christianity, Hinduism, Buddhism, and Secularism.


HOW IT WORKS

  • The world is divided into five colored regions, each initially associated with a dominant religion.
  • Agents are created according to real-world religion proportions (Pew Research 2020).
  • Each agent has a religion, a conviction level (strength of belief), and an age.
  • Agents can:
    • Reproduce at rates based on real fertility data per religion.
    • Age and die after 85 years or based on a probability increasing with age.
    • Interact with neighbors and possibly convert based on conviction gaps.
    • Move randomly across the map.

HOW TO USE IT

Interface Elements:

  • Setup: Initializes the simulation and creates the world.
  • Go: Runs the simulation step by step.
  • Show-Religion Switches: Turn on/off display of specific religions and control plotting.
  • Year Monitor: Displays the current simulation year.
  • Plot: "Belief Populations" shows the count of followers per religion over time.

THINGS TO NOTICE

  • How some religions grow faster than others due to birth rate advantages.
  • The role of conviction: agents with low conviction tend to convert.
  • How social proximity influences belief spread.
  • The impact of mortality: older agents eventually die, making room for younger ones.

THINGS TO TRY

  • Try deselecting a religion using the switches and see how it affects the dynamics.
  • Let the simulation run to 2150 and observe the dominant religions over time.
  • Modify the fertility or mortality rates in the code and see how they affect population balance.

EXTENDING THE MODEL

  • Add reverts: agents returning to their original religion.
  • Add country-specific maps or draw actual regions with pcolor.
  • Use import-drawing to overlay a world map.
  • Implement inter-religion conflict zones or tolerance levels.
  • Visualize age structure using pyramids or bar charts per religion.

NETLOGO FEATURES

  • Uses plabel to label religious zones.
  • Uses setxy, update-color, and in-radius to simulate movement and influence.
  • Relies on simple data structures (list, foreach) to reflect real-world proportions.
  • Mortality implemented using age-based probability and maximum age threshold.
  • Reproduction limited to a fertile age range.

RELATED MODELS

  • NetLogo's "Segregation" model (for influence dynamics)
  • "Virus on a Network" (social propagation)
  • Custom ABMs in religious or cultural simulation research

CREDITS AND REFERENCES


MIT License

Copyright (c) 2025 ABDESSALEM DJOUDI

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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 21 days 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' 21 days ago, by Abdessalem Djoudi Download

This model does not have any ancestors.

This model does not have any descendants.