{"id":15067956,"url":"https://github.com/simulationstorm/simulationstorm","last_synced_at":"2025-04-10T16:13:44.886Z","repository":{"id":246902439,"uuid":"822090442","full_name":"SimulationStorm/SimulationStorm","owner":"SimulationStorm","description":"A cross-platform simulation development toolkit for the .NET","archived":false,"fork":false,"pushed_at":"2024-08-05T14:00:55.000Z","size":9173,"stargazers_count":21,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T14:06:18.973Z","etag":null,"topics":["c-sharp","cross-platform","dotnet","open-source","simulation","simulation-engine","simulation-framework","simulation-modeling","simulation-toolkit","simulations"],"latest_commit_sha":null,"homepage":"","language":"C#","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/SimulationStorm.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-30T09:34:21.000Z","updated_at":"2024-12-30T22:29:57.000Z","dependencies_parsed_at":"2024-08-04T20:34:08.404Z","dependency_job_id":"b9df74fc-cbc5-422a-9393-fd0c0eb1d9ec","html_url":"https://github.com/SimulationStorm/SimulationStorm","commit_stats":null,"previous_names":["simulationstorm/simulationstorm"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimulationStorm%2FSimulationStorm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimulationStorm%2FSimulationStorm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimulationStorm%2FSimulationStorm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimulationStorm%2FSimulationStorm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SimulationStorm","download_url":"https://codeload.github.com/SimulationStorm/SimulationStorm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248251583,"owners_count":21072691,"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":["c-sharp","cross-platform","dotnet","open-source","simulation","simulation-engine","simulation-framework","simulation-modeling","simulation-toolkit","simulations"],"created_at":"2024-09-25T01:29:33.709Z","updated_at":"2025-04-10T16:13:44.865Z","avatar_url":"https://github.com/SimulationStorm.png","language":"C#","readme":"﻿﻿[На русском языке :point_left:](readme_ru.md)\n\n# SimulationStorm\n\nSimulationStorm is the open-source .NET and C# cross-platform simulation development toolkit.\nNow, there is only one simulation built with SimulationStorm, which demonstrates the toolkit capabilities - it is the [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life).\n\nThe project is under active development, many changes are planned and the API is unstable. Due to this fact, the project is currently \u003cb\u003enot recommended for use\u003c/b\u003e for simulation development.\n\n![The SimulationStorm project main illustration](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/2674130b-e7e7-4531-9f30-a1a0eb4ae30b)\n\n## Toolkit contents\n\n### General purpose modules\n\nComplete components that implement useful functionality for various types of applications:\n\n* The module that provides some primitive data types\n* The module for working with two-dimensional graphics\n* The module for working with collections\n* The application save/load module\n* The interface localization module\n* The tool panels module\n\n### Simulation modules\n\nComplete functional blocks that implement certain properties and behaviors of simulations:\n\n* The main simulation module\n* The simulation history module\n* The simulation statistics module\n* The simulation advancement module\n* The module for simulations with a limited world size\n* The module for returning the simulation to its original state\n* The module for cellular simulations\n* The module for cellular automations\n\n### Simulation Launcher\n\nA launcher is available to run various simulations from a single interface.\n\n## Screenshots\n\n* The simulation launcher\n![The simulation launcher](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/10cc54d0-b2a7-4cef-bbed-f4ea15af5726)\n\n* The cellular automation epilepsy warning splash screen\n![The cellular automation epilepsy warning splash screen](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/cfa0ec43-5d92-44e6-bb91-e2bf73675cc4)\n\n* The simulation loading splash screen\n![The simulation loading splash screen](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/12649dc6-34d9-4a1c-b3d6-49ceef2a2977)\n\n* The simulation initial screen\n![The simulation initial screen](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/42ba55eb-8149-4e31-a73e-e561a5493e43)\n\n* The simulation control panel\n![The simulation control panel](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/39ff51c3-2801-4b0f-b540-c07852099fce)\n\n* The cellular automation drawing panel\n![The cellular automation drawing panel](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/50e20f85-bb51-4a6a-b169-8c81e2ae250f)\n\n* The simulation history panel\n![The simulation history panel](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/d3f778a9-a881-41f5-b304-7c312c5a0280)\n\n* The simulation statistics panel\n![The simulation statistics panel](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/2386d570-c612-4801-b03e-57da4d387741)\n\n* The simulation rendering control panel\n![The simulation rendering control panel](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/ae6729a3-abe8-4109-8d76-62facac403f8)\n\n* The simulation camera control panel\n![The simulation camera control panel](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/1b770bdd-9e8f-454b-8b85-96c039af8131)\n\n* The simulation saves menu\n![The simulation saves menu](https://github.com/SimulationStorm/SimulationStorm/assets/24940119/af095e37-c518-464f-96f0-1dd9c775b543)\n\n## Documentation\n\n* [The project presentation](https://gamma.app/docs/SimulationStorm-smdl8bqf76x27fw) (in Russian)\n* [Dimploma project on the toolkit development](toolkit_docs.docx) (in Russian)\n* [Dimploma project on the Conway's Game of Life development](game_of_life_docs.docx) (in Russian)\n\n### Toolkit architectural principles\n\n#### 1 Modularity\n\nComponents are functionally related and combined into loosely coupled modules.\n\n#### 2 Levels\n\nModules are divided into several projects representing different logical levels. This is the MVVM architectural pattern.\n\n##### 2.1 The Domain Model project\n\nComponents that implement the essence of the module and are not related to the user interface in any way.\n\n##### 2.2 The Presentation project\n\nComponents that make possible the interaction of the user interface and the domain model.\n\n##### 2.3 The User Interface project\n\nImplementation of the user interface using presentation-level components.\n\n#### 3 Hierarchy\n\nA project of one level can only access projects of the lower levels.\n\n## Development\n\nThe project is under the active development.\n\nThe Pull Request template and contribution guidelines will be created in the near future.\n\nThis project uses the [GitHub Flow](https://docs.github.com/ru/get-started/using-github/github-flow) branching model.\n\n[The project task list](docs/task_list.md).\n\n## Tech stack\n\n* General\n    * [.NEXT](https://github.com/dotnet/dotNext)\n    * [SkiaSharp](https://github.com/mono/SkiaSharp)\n    * [Ben.Demystifier](https://github.com/benaadams/Ben.Demystifier)\n* Reactivity\n    * [Rx.NET](https://github.com/dotnet/reactive)\n    * [DynamicData](https://github.com/reactivemarbles/DynamicData)\n* Database \u0026 ORM\n    * SQLite\n    * [Entity Framework](https://github.com/dotnet/efcore)\n* Dependency Injection\n    * [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.Extensions.DependencyInjection)\n* MVVM frameworks\n    * [CommunityToolkit.Mvvm](https://github.com/CommunityToolkit/dotnet/tree/main/src/CommunityToolkit.Mvvm)\n    * [ReactiveUI](https://reactiveui.net/)\n* Logging\n    * [Microsoft.Extensions.Logging](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.Extensions.Logging)\n    * [Serilog](https://github.com/serilog/serilog)\n* Testing\n    * [MSTest](https://github.com/microsoft/testfx)\n* User interface\n    * [Avalonia UI](https://avaloniaui.net)\n    * [Avalonia Labs](https://github.com/AvaloniaUI/Avalonia.Labs)\n    * [Actipro Avalonia UI theme \u0026 controls](https://github.com/Actipro/Avalonia-Controls) (* free products only)\n    * [Tabler icons for Avalonia UI](https://github.com/Epacik/tabler-icons-avalonia)\n* Data visualization\n    * [LiveCharts 2](https://github.com/beto-rodriguez/LiveCharts2)\n\n[Detailed used package names and versions](../Directory.Packages.props).\n\n## History\n\nWork on the project began in early 2023 with a passion for [The Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life), [cellular automata](https://en.wikipedia.org/wiki/Cellular_automaton) and self-stabilizing systems.\nThe idea was to develop a program that would include two simulation: the \"Game of Life\", and the \"Artificial Life\", which would simulate self-stabilizing system.\nAfter the \"Game of Life\" project has been implemented, work began on the \"Artificial Life\" project, and then on the \"Cellular automation constructor\" project.\nThe development was carried out using the C# and the [Godot Engine](https://godotengine.org).\nYou can view the previous version of the project [by this link](https://github.com/SimulationStorm/ResearchProject).\n\nAt the end of 2023, decision was made to port the project to the [Avalonia UI](https://avaloniaui.net) framework for a number of reasons.\nSo, in the process of porting the project to another platform and refactoring it, the idea was born to create a toolkit for developing simulations.\n\n## Thanks\n\nThis project is insired by [The Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life), [cellular automata](https://en.wikipedia.org/wiki/Cellular_automaton), [the Golly project](https://golly.sourceforge.io/) and [simulations of pseudo-biology processes or self-stabilizing systems (Russian)](https://optozorax.github.io/e/emergevolution).\n\nEndless thanks to the developers of the .NET platform, the C# language and all used third-party libraries.\n\n## Authors\n\n* [Ilnaz Khasanov, @Ilnazz](https://github.com/Ilnazz)\n* [Ruslan Garipov, @Ryslan271](https://github.com/Ryslan271)\n\n## License\n\nMost of the used third-pary libraries are licensed under the MIT license.\n\nThe SimulationStorm project is licensed under the [MIT licence](license.md).","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimulationstorm%2Fsimulationstorm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimulationstorm%2Fsimulationstorm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimulationstorm%2Fsimulationstorm/lists"}