{"id":24911389,"url":"https://github.com/kiwijuice56/evolution-simulation","last_synced_at":"2025-04-14T13:51:07.010Z","repository":{"id":107498332,"uuid":"460288398","full_name":"kiwijuice56/evolution-simulation","owner":"kiwijuice56","description":"Interactive game to simulate emergence and natural selection in biological systems","archived":false,"fork":false,"pushed_at":"2022-06-16T23:59:41.000Z","size":596,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T02:53:04.036Z","etag":null,"topics":["biological-simulations","biology","collision-detection","educational","evolution","evolution-simulation","java","natural-selection","physics-2d","physics-simulation","simulation"],"latest_commit_sha":null,"homepage":"","language":"Java","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/kiwijuice56.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-17T05:03:51.000Z","updated_at":"2025-02-07T05:23:53.000Z","dependencies_parsed_at":"2023-04-12T19:31:45.164Z","dependency_job_id":null,"html_url":"https://github.com/kiwijuice56/evolution-simulation","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwijuice56%2Fevolution-simulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwijuice56%2Fevolution-simulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwijuice56%2Fevolution-simulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwijuice56%2Fevolution-simulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kiwijuice56","download_url":"https://codeload.github.com/kiwijuice56/evolution-simulation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248891013,"owners_count":21178545,"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":["biological-simulations","biology","collision-detection","educational","evolution","evolution-simulation","java","natural-selection","physics-2d","physics-simulation","simulation"],"created_at":"2025-02-02T04:19:47.430Z","updated_at":"2025-04-14T13:51:07.001Z","avatar_url":"https://github.com/kiwijuice56.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![icon](resources/icon.png) evolution-simulation ![icon](resources/icon.png)\n This program simulates emergence and natural selection in biological systems using a few basic components.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/screenshot1.png\" alt=\"sample execution\"/\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cb\u003eSample execution\u003c/b\u003e\u003c/p\u003e\n\n\n## Organism Mechanics\nOrganisms are represented with nodes in a graph, each color representing a specific node element.\nEach line represents a bidirectional connection in the graph organism.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/screenshot2.png\" alt=\"image of organism\"/\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cb\u003eAn organism!\u003c/b\u003e\u003c/p\u003e\n\nEach node has an energy property (represented by brightness) that must\nbe kept above zero to prevent the organism from starving. This can\nbe achieved through consuming food particles or predation. Nodes lose energy over time and viruses\ncan deplete energy more quickly.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/screenshot3.png\" alt=\"image of food\"/\u003e\n\u003c/p\u003e\n\u003cp align = \"center\"\u003e\u003cb\u003eFood producers and particles\u003c/b\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/screenshot7.png\" alt=\"image of viruses\"/\u003e\n\u003c/p\u003e\n\u003cp align = \"center\"\u003e\u003cb\u003eVirus producers and particles\u003c/b\u003e\u003c/p\u003e\n\nOrganisms have \"DNA\" which is represented\nthrough code containing lines of nodes to create and which nodes to connect to. You can create\nyour own organisms through the program's code editor.\nAs the organism gains energy, it will read through its code and add nodes with their\nrespective connections.\nIf an organism has enough energy, it can duplicate its reproductive node and code\nwhich will then grow into fully a developed organism.\n\n### Node Table\n| Tag   | Col | Description |\n| ----- | ----------- | -----------|\n| `nod` | ![dark-violet](img/dark-violet.png) | Structural, strong virus resistance\n| `eat` | ![teal](img/teal.png) |  Consume food for energy, low resistance \n| `run` | ![purple](img/purple.png) | Moves away from other organisms\n| `jit` | ![lavender](img/lavender.png) | Jitter randomly \n| `rot` | ![hot-pink](img/hot-pink.png)|  Rotate randomly\n| `fol` | ![salmon](img/salmon.png) | Moves towards other organisms \n| `pre` | ![red](img/red.png) | Siphon energy from other organisms \n| `sto` | ![yellow](img/yellow.png) | Radius changes with energy, high max energy \n| `gat` | ![green](img/green.png) | Moves towards food circles\n| `rep` | ![white](img/white.png) |  (cannot be coded) Organizes growing and replication\n\n### Example Code\n```\neat 0\nrot 0\nnod 0\nnod 3\nnod 4\nnod 5\nnod 6\njit 7\n```\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/screenshot5.png\" alt=\"image of organism from code\"/\u003e\n\u003c/p\u003e\n\u003cp align = \"center\"\u003e\u003cb\u003eOrganism created from code example\u003c/b\u003e\u003c/p\u003e\n\nAlso, multiple node connections can be made in one line.\n```\neat 0\njit 1\nrot 2\nrot 2\nnod 3\nnod 3 5\nnod 3 6\nnod 4\nnod 4 8\nnod 4 9\n```\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/screenshot6.png\" alt=\"image organism created from code example 2\"/\u003e\n\u003c/p\u003e\n\u003cp align = \"center\"\u003e\u003cb\u003eOrganism created from code example\u003c/b\u003e\u003c/p\u003e\n\n### Evolution\nWhen an organism duplicates, its code can contain errors through\nswaps, deletions, and insertions. Over time, many organism\ntypes can be created.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/screenshot4.png\" alt=\"image of crowding organisms\"/\u003e\n\u003c/p\u003e\n\u003cp align = \"center\"\u003e\u003cb\u003eEvolution\u003c/b\u003e\u003c/p\u003e\n\nExperiment with the starting conditions to see what organisms\nyou can create!\n\n## Running the program\nThe release files were compiled using Java 17. If you encounter errors while trying to execute the jar,\nensure that Java 17 is configured in your PATH and run the program from the terminal.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/screenshot8.png\" alt=\"running the program\"/\u003e\n\u003c/p\u003e\n\u003cp align = \"center\"\u003e\u003cb\u003eRun\u003c/b\u003e\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiwijuice56%2Fevolution-simulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiwijuice56%2Fevolution-simulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiwijuice56%2Fevolution-simulation/lists"}