{"id":15659498,"url":"https://github.com/avivace/physarum","last_synced_at":"2025-05-05T19:29:47.767Z","repository":{"id":74799749,"uuid":"194939464","full_name":"avivace/Physarum","owner":"avivace","description":"Physarum polycephalum slime mould computing simulation, implemented on a custom VueJS + Unity3D stack","archived":false,"fork":false,"pushed_at":"2020-09-26T13:36:55.000Z","size":72806,"stargazers_count":21,"open_issues_count":5,"forks_count":4,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2024-05-02T02:40:29.766Z","etag":null,"topics":["adamatzky","agent-based-modeling","agent-based-simulation","complex-systems","implementation","integration","physarum","simulation","simulation-framework","slime","slime-mold","smart-slime","unity","unity2d","vue","vuejs"],"latest_commit_sha":null,"homepage":"https://avivace.github.io/Physarum","language":"C#","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/avivace.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":"2019-07-02T21:49:39.000Z","updated_at":"2024-04-24T23:00:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"53092680-6108-44ec-92f3-d4efd41ccf8e","html_url":"https://github.com/avivace/Physarum","commit_stats":{"total_commits":223,"total_committers":5,"mean_commits":44.6,"dds":0.6457399103139013,"last_synced_commit":"189de5d2fbb73b2b1777365cb77ea6d77e76fe64"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avivace%2FPhysarum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avivace%2FPhysarum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avivace%2FPhysarum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avivace%2FPhysarum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avivace","download_url":"https://codeload.github.com/avivace/Physarum/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252562577,"owners_count":21768311,"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":["adamatzky","agent-based-modeling","agent-based-simulation","complex-systems","implementation","integration","physarum","simulation","simulation-framework","slime","slime-mold","smart-slime","unity","unity2d","vue","vuejs"],"created_at":"2024-10-03T13:17:09.539Z","updated_at":"2025-05-05T19:29:47.722Z","avatar_url":"https://github.com/avivace.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Physarum\n\n\u003cimg src=\"docs/Physarum_CNRS_2880x1500_BN.jpg\"/\u003e\n\nFinal project for my Complex Systems course, from my [MSc in Computer Science](https://github.com/avivace): *Physarum polycephalum slime mould computing simulations.*\n\nBy [Matteo Coppola](https://github.com/matteocoppola), [Luca Palazzi](https://github.com/lucapalazzi), [Antonio Vivace](https://github.com/avivace).\n\n### [Live demo](https://avivace.github.io/Physarum)\n\n### [Documentation](docs/report.pdf)\n\n### [Slides](Slides.pdf)\n\n\n\n## Develop\n\nClone the project locally: `git clone git@github.com:avivace/Physarum.git`\n\n### Unity\n\nBe sure you are on Unity 2018.3.14f1 (64-bit).\n\n\u003e Use windows to produce the webgl build, since on linux it doesn't work, reporting `il2cpp/build/il2cpp.exe did not run properly!`.\n\n**Unity** -\u003e **Open Project** -\u003e Select the **\"UnityProject\"** folder inside the cloned repository. Once the project import finished, drag and drop the \"SampleScene\" from the assets folder (Project Pane) into the Hyerarchy pane.\n\nEach attached component and selected asset for a component loses its link due to cache being invalidated when exporting/importing so you have to manually select:\n\n- SimulationManager script, attached to GameObject\n    + ImageAsset, pointing to the desired map to run\n    + Tile: tile(Tile)\n    + Camera: the main Camera\n- Click on Tile from the inspector, and select the sprite (DefaultSprite)\n- Attach the CameraManager script to the Main Camera\n\nDouble click on \"SampleScene\" then you can run the project (Play).\n\n#### WEBGL build\n\nYou need a webgl build to deploy and plug the application into the VueJS UI.\n\nLaunch the Unity webgl build and select `Physarum/webapp/public/unitybuild` as destination folder. Refresh the web application because the webpack/vue hot reloads breaks UnityLoader.\n\n### Web UI application\n\nA simple VueJS application, using Vuetify as CSS framework. \n\n```\nnpm run serve\n```\n\nDue to GitHub limitations for github pages, we use the `master` branch to deploy builds, and the `develop` as an actual branch.\n\n### Deploy\n\n```\nnpm run deploy\n```\n\nBuilds the web application and deploys it at [avivace.github.io/Physarum](https://avivace.github.io/Physarum).\n\nAn internal API has been developed to allow bidirectional stateful comunication between the VueJS instance and the webgl build of the Unity application. The Unity application is able to send updates about the status of the simulation to Vue, so we can se real time updates, while the Vue application can send actions and modify parameters or select the map.\n\nVue -\u003e Unity's PayloadHandler\n\nUnity ExternalCall -\u003e Vue\n\n### Documentation\n\nTo build:\n```\ncd docs/\npdflatex report.tex\n```\n\n## Resources\n\n#### Web UI \u003c-\u003e Unity\n\n- [WebGL: Interacting with browser scripting](https://docs.unity3d.com/2018.4/Documentation/Manual/webgl-interactingwithbrowserscripting.html)\n- [JsonUtility.FromJson](https://docs.unity3d.com/ScriptReference/JsonUtility.FromJson.html)\n- [Application.ExternalCall](https://docs.unity3d.com/540/Documentation/ScriptReference/Application.ExternalCall.html)\n- [Application.ExternalEval](https://docs.unity3d.com/540/Documentation/ScriptReference/Application.ExternalEval.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favivace%2Fphysarum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favivace%2Fphysarum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favivace%2Fphysarum/lists"}