The Future of Faith: An Agent-Based Exploration of Religious Trends
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
, andin-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
Pew Research Center (2015–2022): Religious Demographics & Fertility Data https://www.pewresearch.org/religion
World Health Organization mortality data https://www.who.int/data/gho/data/themes/mortality-and-global-health-estimates
Human Mortality Database https://www.mortality.org
Statista: Global population by religion https://www.statista.com/statistics/374704
This model was built and enhanced by Djoudi Abdessalem using NetLogo 6.x
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
; 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.