/Symu

An opensource framework for organization simulation

Primary LanguageC#GNU General Public License v3.0GPL-3.0

Symu

GitHub release (latest by date) Documentation Status

Develop your own application to run virtual experiments with organizations and capture their dynamic behaviors, their evolutions.
Symu is a core of discrete-event multiagent simulation library in C#. It is designed to be the foundation for custom-purpose human-centered organization simulation. Symu implements agnostic organizations as social groups to target the most general use cases.

Organization as complex systems

Symu models groups and organizations as complex systems. It captures the variability in human, technological and organizational factors through heterogeneity in information processing capabilities, but also in knowledge and resources. Also, the non-linearity of the model generates complex temporal behavior due to dynamic relationships among agents. Symu targets agnostic organizations as social groups and does not plan to implement functionality for specific types of organizations.

Some useful links:

How it works

Symu models groups and organizations as complex systems and captures the variability in human, technological and organizational factors through heterogeneity in information processing capabilities, knowledge and resources.
The non-linearity of the model generates complex temporal behavior due to dynamic relationships among agents.

What it is

Symu is a multi-agent system, time based with discrete events, for the co-evolution of agents and socio-cultural environments. Agents are decision-making units and can represent various levels of analysis such as individuals, groups or organizations.
Agents are autonomous, rationally bounded and tasks based.
They interact simultaneously in a shared environment that interacts in turn with the agents, via asynchronous messages.

Why open source

Because we believe that such a framework is valuable for organizations and academics.

Academic program

Symu is based on a library of theoretical models: organization theory, social networks, socio-cultural environment, information diffusion, socio-technical environment…

With our academic program, we will first implement models that you want to use for you.

Getting Started

The main project is Symu. This is the framework you'll use to build your own application in batch. You can use SymuForm for a GUI mode.

Installing

Symu works only on Windows when you use SymuForm. Otherwise, it can be used on Linux, but it have not been tested.

Building

Symu is built upon different repositories. We don't use git submodules. So that, to build Symu and its examples solutions, you'll need to check the dependencies manually.

Symu dependencies

To build Symu you have to add the Symu.Common.dll and Symu.DNA.dll as dependencies. You find this library in the Symu.Common and Symu.DNA repositories. To build Symu examples, you'll need to add Symu.dll, Symu.Forms.dll, Symu.Common.dll and Symu.DNA.dll as dependencies.

External dependencies

Running

As it is a core library, you can't run Symu as is. The sample projects are interesting to understand what the framework can do. They are divided into models, for example learning and forgetting models. They allow you to discover, understand and configure each model, in this sense it is a good entry point. You can find executables files of those examples in the latest release.

Contributors

See the list of CONTRIBUTORS who participated in this project.

Contributing

Please read CONTRIBUTING for details on how you can contribute and the process for contributing.

Code of conduct

Please read CODE_OF_CONDUCT for details on our code of conduct if you want to contribute.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details

Support

Paid consulting and support options are available from the corporate sponsors. See Symu services.

Integration

Symu is used in projects:

  • Symu.biz: an enterprise level implementation