{"id":16356073,"url":"https://github.com/joehowarth/population-simulation","last_synced_at":"2025-03-21T00:31:32.485Z","repository":{"id":35955790,"uuid":"154754894","full_name":"JoeHowarth/Population-Simulation","owner":"JoeHowarth","description":null,"archived":false,"fork":false,"pushed_at":"2023-02-28T11:34:14.000Z","size":3385,"stargazers_count":15,"open_issues_count":39,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T19:13:26.033Z","etag":null,"topics":["babylonjs","historical","javascript","map-generation","procedural-generation","rust","simulation","specs","vue","vuejs","vuex"],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JoeHowarth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-10-26T00:32:37.000Z","updated_at":"2023-09-17T09:18:28.000Z","dependencies_parsed_at":"2023-01-16T10:00:27.441Z","dependency_job_id":"e088a43f-f492-4083-aa62-626d8c1c2ff2","html_url":"https://github.com/JoeHowarth/Population-Simulation","commit_stats":{"total_commits":57,"total_committers":2,"mean_commits":28.5,"dds":0.1578947368421053,"last_synced_commit":"ef8bb82ce3545dcb5a9f65d4557186962e191e36"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeHowarth%2FPopulation-Simulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeHowarth%2FPopulation-Simulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeHowarth%2FPopulation-Simulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeHowarth%2FPopulation-Simulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JoeHowarth","download_url":"https://codeload.github.com/JoeHowarth/Population-Simulation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244717377,"owners_count":20498283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["babylonjs","historical","javascript","map-generation","procedural-generation","rust","simulation","specs","vue","vuejs","vuex"],"created_at":"2024-10-11T01:42:37.564Z","updated_at":"2025-03-21T00:31:32.115Z","avatar_url":"https://github.com/JoeHowarth.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![](https://tokei.rs/b1/github/JoeHowarth/Population-Simulation?category=code\u0026exclude=*.json)](http://github.com/JoeHowarth/Population-Simulation)\n\n## Update\n\nThis repo is not being actively developed, but the larger project idea is still active. This setup is user-focussed with significant considerations for parallezation, scalable archetecture etc., but I found that many components still need to be designed and this setup doesn't allow for fast enough iteration. In that spirit I've focussed on smaller projects that tackle an aspect of this in the hope that down the line I can take what I've learned and build the project I outlined in the design docs here. Right now I'm mostly focussed on a market based econonic engine and building out developer tooling to make the simulations more interpretable and debuggable while I'm writing them.\n\n**2022 update**: A fresh take on this architecture with a much smaller scope lives in https://github.com/JoeHowarth/trade-sim\n\n-----------\n\nSee\n- [Architecture](design_docs/Architecture.md) for technical details\n- [Map Generation](design_docs/MapGen_README.md) for Computational Geometry Final Project\n- [Population Design Discussion](design_docs/PopulationDesign.md)\n- [How to Challenge the Player](design_docs/ChallengingThePlayer.md) for lamenting about traditional AI's limitation\n\n\n### How to Run\n\nRequires Rust nightly [here](https://www.rust-lang.org/tools/install)\n\n    rustup install nightly\n    \n    git clone git@github.com:JoeHowarth/Population-Simulation.git\n    cd Population-Simulation\n    rustup override set nightly\n    cargo build\n    \nIn new terminal\n\n    cd vue-client\n    npm install\n    npm run serve\n\n- open localhost:8080 in chrome\n- Click on Map Debugger -\u003e Generate Map\n- In other terminal\n\n``` \ncargo run\n```\n\n- now refresh client in browser\n\n\nIn future, won't have to generate map file separately.\n   \n\n---\n**Below is outdated**\n\n### Dynamic Grand Strategy \n\nGrand strategy games like Europa Universalis, Crusader Kings, Civilization, Victoria\nand even Total War each immerse the player in a simulated world.\nWhich aspects of reality they focus on while abstracting (or ignoring) the rest,\ndefines the experience and the game.\nCrusader Kings stands out as the only game attempting to model\nleaders' intricacy and humanity.\nVictoria, through representing and tying populations' plight or prosperity to events\nin the world abroad.\nEach bring a different perspective, yet all feel somewhat static in how they model\ntheir world.\nNone besides Victoria even allow for private economy, shifting populations,\nfounding new cities, changing provincial areas, shifting national ideas etc. etc.\n\nInspired by the Europa Universalis 4 mod Meiou and Taxes and specifically Demian Sky,\nhere I will explore creating a truly dynamic historical simulator and the\ntechnical challenges that come with it.\n\nThe world should feel *alive*.\n\n\nCritical Elements\n--------\n\n- Population\n- Wealth and Trade\n- Ideology, Religion and Culture\n- Food\n- Settlements\n- Knowledge and Technology\n- Leaders\n- Government Structure\n- Diplomacy and Politics\n- Geography and Climate\n\nEventually, all these elements should be linked together.\nOf course, doing any of these areas justice requires a monumental amount of work,\nso it's necessary to start with a smaller scope and focus.\n\nInitial Roadmap\n-----------------\n\nHere's roughly how I envision this project progressing\n\n1. Workable proceducal map generator\n2. Technical infrastructure MVP\n3. Initial settlement placement\n4. Population dynamics\n5. Trade and economic systems\n6. Re-evaluation\n\n\nNext we'll take a closer look at map generation and then the infrastructure behind the\nsimulation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoehowarth%2Fpopulation-simulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoehowarth%2Fpopulation-simulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoehowarth%2Fpopulation-simulation/lists"}