{"id":28807211,"url":"https://github.com/aalok-sathe/fire-evacuation-simulator","last_synced_at":"2026-01-20T13:34:50.167Z","repository":{"id":46144431,"uuid":"225899337","full_name":"aalok-sathe/fire-evacuation-simulator","owner":"aalok-sathe","description":"simple ABM program to simulate a moving danger (e.g., fire) and people in a confined space trying to escape the danger","archived":false,"fork":false,"pushed_at":"2024-11-29T15:22:30.000Z","size":51,"stargazers_count":16,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-08T22:17:28.733Z","etag":null,"topics":["agent-based-modeling","bottleneck","egress","emergent-behavior","escape","evacuation","evacuation-planning","fire","simulation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aalok-sathe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-04T15:32:21.000Z","updated_at":"2025-08-03T08:36:30.000Z","dependencies_parsed_at":"2022-09-01T03:40:06.936Z","dependency_job_id":null,"html_url":"https://github.com/aalok-sathe/fire-evacuation-simulator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aalok-sathe/fire-evacuation-simulator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalok-sathe%2Ffire-evacuation-simulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalok-sathe%2Ffire-evacuation-simulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalok-sathe%2Ffire-evacuation-simulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalok-sathe%2Ffire-evacuation-simulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aalok-sathe","download_url":"https://codeload.github.com/aalok-sathe/fire-evacuation-simulator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalok-sathe%2Ffire-evacuation-simulator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28603797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-based-modeling","bottleneck","egress","emergent-behavior","escape","evacuation","evacuation-planning","fire","simulation"],"created_at":"2025-06-18T11:33:40.182Z","updated_at":"2026-01-20T13:34:50.155Z","avatar_url":"https://github.com/aalok-sathe.png","language":"Python","funding_links":[],"categories":["Tools"],"sub_categories":[],"readme":"# agent-based building evacuation simulation\n\nthis simple simulation program simulates a moving danger situation (e.g., fire) \nand people in a confined space trying to escape away from danger to get to safe zone(s).\nadditional constraints are modeled as queues, where a limited number of people can pass at once.\n\nfinal project for [cs326: 'simulation'](http://cs.richmond.edu/courses/index.html)\n\nsee it in action!\n\n![action](https://i.imgur.com/JsQBlWi.png)\n\nUsage\n---\n```\nusage: evacuate.py [-h] [-i INPUT] [-n NUMPEOPLE] [-r RANDOM_STATE]\n                   [-t MAX_TIME] [-f] [-g] [-v] [-d FIRE_RATE]\n                   [-b BOTTLENECK_DELAY] [-a ANIMATION_DELAY]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  \n  -i INPUT, --input INPUT\n                        input floor plan file (default: in/twoexitbottleneck.py)\n                        \n  -n NUMPEOPLE, --numpeople NUMPEOPLE\n                        number of people in the simulation (default: 10)\n                        \n  -r RANDOM_STATE, --random_state RANDOM_STATE\n                        aka. seed (default: 8675309)\n                        \n  -t MAX_TIME, --max_time MAX_TIME\n                        the building collapses at this clock tick. people\n                        beginning movement before this will be assumed to have\n                        moved away sufficiently (no default argument)\n                        \n  -d FIRE_RATE, --fire_rate FIRE_RATE\n                        exponent of spread of fire rate function exponentiator\n                        fire grows exponentially. d determines how exponentially.\n                        \n  -b BOTTLENECK_DELAY, --bottleneck_delay BOTTLENECK_DELAY\n                        how long until the next person may leave the B\n                        \n  -a ANIMATION_DELAY, --animation_delay ANIMATION_DELAY\n                        delay per frame of animated visualization (s, default: 1)\n                        \n  -f, --no_spread_fire  disallow fire to spread around? (default: false)\n  \n  -g, --no_graphical_output\n                        disallow graphics? (default: false)\n                        \n  -v, --verbose         show excessive output? (default: false)\n                         \n```\n\n### Sample output\nThe goal of the program is to run simulations and output useful statistics\nabout the simulations, in a manner that helps understand the effects of\nvarious parameters the simulation is called with, on the outcome.\n```\nSTATS\n\t total # people .......................................... 32\n\t # people safe ........................................... 32\n\t # people dead ............................................ 0\n\t # people gravely injured ................................. 0\n\n\t average time to safe ................................ 10.088\n```\n\n\nModel\n---\nWe model a floor plan as a 2D grid. A cell neighbors four other cells (top, bottom, left, right).\nEach cell has attributes: it can be normal (N), wall (W), bottleneck (B), fire (F), safe zone (S), or people (P).\nYou can use a GUI program to design and generate input per our specification; \nvisit [this repository](https://github.com/aalok-sathe/egress-floorplan-design). Some sample inputs are available in `in/`.\n\nThe goal is for as many people to get to the safe zones, away from danger's reach. \nTo solve this problem, we represent this 2D grid using a graph with nodes and edges between adjacent nodes (neighbors). \nPeople may move between adjacent nodes. Each person has their own movement strategy, and implements a move() method that\nreturns a location. The actual simulation is agnostic of the implementation of this method, allowing for agent-based\nmodeling experiments. In our case, we consider some baseline strategies: a person will choose to move towards the closest safe\nzone with a certain probability, and away from it with the remaining chance. Additionally, agents move at different rates,\ncongruent to real-world scenario.\nA bottleneck is any constricted pathway allowing the passage of only a finite amount of persons in unit time. \nFor simplicity, we will consider this limit to be 1. There may be multiple bottlenecks. Exits are ideally bottlenecks, \notherwise the simulation would not be meaningful or purposeful.\n\nThe simulation may run for a max time T, allowing questions such as survival rate; percent people out of danger, \nor until everyone escapes, allowing for studying mean escape time, and time after which most people escape after individual\nvariability.\n\n\n\nPeople\n---\n- Aalok S\n- Nick B\n- Matthew J\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faalok-sathe%2Ffire-evacuation-simulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faalok-sathe%2Ffire-evacuation-simulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faalok-sathe%2Ffire-evacuation-simulator/lists"}