SimulationStorm

Форк
0

readme.md

На русском языке :point_left:

SimulationStorm

SimulationStorm is the open-source .NET and C# cross-platform simulation development toolkit. Now, there is only one simulation built with SimulationStorm, which demonstrates the toolkit capabilities - it is the Conway's Game of Life.

The project is under active development, many changes are planned and the API is unstable. Due to this fact, the project is currently not recommended for use for simulation development.

The SimulationStorm project main illustration

Toolkit contents

General purpose modules

Complete components that implement useful functionality for various types of applications:

  • The module that provides some primitive data types
  • The module for working with two-dimensional graphics
  • The module for working with collections
  • The application save/load module
  • The interface localization module
  • The tool panels module

Simulation modules

Complete functional blocks that implement certain properties and behaviors of simulations:

  • The main simulation module
  • The simulation history module
  • The simulation statistics module
  • The simulation advancement module
  • The module for simulations with a limited world size
  • The module for returning the simulation to its original state
  • The module for cellular simulations
  • The module for cellular automations

Simulation Launcher

A launcher is available to run various simulations from a single interface.

Screenshots

  • The simulation launcher The simulation launcher

  • The cellular automation epilepsy warning splash screen The cellular automation epilepsy warning splash screen

  • The simulation loading splash screen The simulation loading splash screen

  • The simulation initial screen The simulation initial screen

  • The simulation control panel The simulation control panel

  • The cellular automation drawing panel The cellular automation drawing panel

  • The simulation history panel The simulation history panel

  • The simulation statistics panel The simulation statistics panel

  • The simulation rendering control panel The simulation rendering control panel

  • The simulation camera control panel The simulation camera control panel

  • The simulation saves menu The simulation saves menu

Documentation

Toolkit architectural principles

1 Modularity

Components are functionally related and combined into loosely coupled modules.

2 Levels

Modules are divided into several projects representing different logical levels. This is the MVVM architectural pattern.

2.1 The Domain Model project

Components that implement the essence of the module and are not related to the user interface in any way.

2.2 The Presentation project

Components that make possible the interaction of the user interface and the domain model.

2.3 The User Interface project

Implementation of the user interface using presentation-level components.

3 Hierarchy

A project of one level can only access projects of the lower levels.

Development

The project is under the active development.

The Pull Request template and contribution guidelines will be created in the near future.

This project uses the GitHub Flow branching model.

The project task list.

Tech stack

Detailed used package names and versions.

History

Work on the project began in early 2023 with a passion for The Conway's Game of Life, cellular automata and self-stabilizing systems. The 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. After the "Game of Life" project has been implemented, work began on the "Artificial Life" project, and then on the "Cellular automation constructor" project. The development was carried out using the C# and the Godot Engine. You can view the previous version of the project by this link.

At the end of 2023, decision was made to port the project to the Avalonia UI framework for a number of reasons. So, in the process of porting the project to another platform and refactoring it, the idea was born to create a toolkit for developing simulations.

Thanks

This project is insired by The Conway's Game of Life, cellular automata, the Golly project and simulations of pseudo-biology processes or self-stabilizing systems (Russian).

Endless thanks to the developers of the .NET platform, the C# language and all used third-party libraries.

Authors

License

Most of the used third-pary libraries are licensed under the MIT license.

The SimulationStorm project is licensed under the MIT licence.

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.