{"id":13807601,"url":"https://github.com/RomainFranceschini/quartz","last_synced_at":"2025-05-14T00:31:46.393Z","repository":{"id":144339826,"uuid":"84057211","full_name":"RomainFranceschini/quartz","owner":"RomainFranceschini","description":"Quartz - A Crystal Modeling \u0026 Simulation framework","archived":false,"fork":false,"pushed_at":"2021-05-22T09:20:39.000Z","size":1239,"stargazers_count":15,"open_issues_count":9,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-18T23:53:26.584Z","etag":null,"topics":["crystal","discrete-event","dsde","modeling","multipdevs","pdevs","quartz","simulation"],"latest_commit_sha":null,"homepage":"","language":"Crystal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RomainFranceschini.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2017-03-06T09:56:03.000Z","updated_at":"2024-10-15T20:20:52.000Z","dependencies_parsed_at":"2023-07-20T10:30:57.988Z","dependency_job_id":null,"html_url":"https://github.com/RomainFranceschini/quartz","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomainFranceschini%2Fquartz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomainFranceschini%2Fquartz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomainFranceschini%2Fquartz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomainFranceschini%2Fquartz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RomainFranceschini","download_url":"https://codeload.github.com/RomainFranceschini/quartz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254046351,"owners_count":22005575,"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":["crystal","discrete-event","dsde","modeling","multipdevs","pdevs","quartz","simulation"],"created_at":"2024-08-04T01:01:27.434Z","updated_at":"2025-05-14T00:31:41.349Z","avatar_url":"https://github.com/RomainFranceschini.png","language":"Crystal","funding_links":[],"categories":["Science and Data analysis"],"sub_categories":[],"readme":"# Quartz - A Crystal Modeling \u0026 Simulation Framework\n\n[![CI Status](https://github.com/RomainFranceschini/quartz/workflows/Quartz%20CI/badge.svg?branch=master)](https://github.com/RomainFranceschini/quartz/actions)\n\nQuartz is a Crystal library for defining models and constructing discrete\nevent simulations.\n\nThe following features are supported:\n\n- Hierarchical models, through the coupling of sub-models via their input/output ports.\n- Discrete-event and discrete-time models.\n- Dynamic structure models.\n- A precise representation of the simulated time.\n- Heterogeneous models, *e.g.* coupling discrete-event and discrete-time models.\n- Model and / or ports observers.\n- Simulation hooks.\n\n## Documentation\n\n* [Docs](https://github.com/RomainFranceschini/quartz/wiki)\n* [API](https://romainfranceschini.github.io/quartz/)\n\n## Installation\n\n### Requirements\n\n* Crystal. Please refer to \u003chttp://crystal-lang.org/docs/installation\u003e for\n  instructions for your operating system.\n\n### Setup\n\nCrystal applications and libraries are expected to have a `shard.yml` file\nat their root. Create a `shard.yml` file in your project's folder (or add to it) with the following contents:\n\n```yaml\ndependencies:\n  quartz:\n    github: RomainFranceschini/quartz\n```\n\nThen, resolve dependencies with shards (Crystal dependency manager) to install Quartz as a dependency of your project:\n\n```\n$ shards install\n```\n\n### Usage\n\nSee the [examples](examples) folder.\n\n## Underlying theory\n\nQuartz is based on the PDEVS (Parallel Discrete EVent System Specification) formalism and some of its extensions (DTSS, DSDE, multiPDEVS).\n\nThis project is developed by a research group at University of Corsica.\n\n### Related books/papers\n\n- Zeigler, Bernard P, Alexandre Muzy, and Ernesto Kofman. 2019. *Theory of Modeling and Simulation*. 3rd edition. Discrete Event \u0026 Iterative System Computational Foundations. Academic Press. [DOI: 10.1016/C2016-0-03987-6](https://doi.org/10.1016/C2016-0-03987-6).\n- Foures, Damien, Romain Franceschini, Paul-Antoine Bisgambiglia, et Bernard P. Zeigler. 2018. « *MultiPDEVS: A Parallel Multicomponent System Specification Formalism* ». Complexity 2018: 1‑19. [DOI: 10.1155/2018/3751917](https://doi.org/10.1155/2018/3751917).\n- Franceschini, Romain, Paul-Antoine Bisgambiglia, Paul Bisgambiglia, and David R. C. Hill. 2018. « *An Overview of the Quartz Modelling and Simulation Framework* ». In Proceedings of 8th International Conference on Simulation and Modeling Methodologies, Technologies and Applications, 120‑27. Porto, Portugal: SCITEPRESS - Science and Technology Publications. [DOI: 10.5220/0006864201200127](https://doi.org/10.5220/0006864201200127)\n- Goldstein, Rhys, Azam Khan, Olivier Dalle, et Gabriel Wainer. 2018. « *Multiscale Representation of Simulated Time* ». SIMULATION 94 (6): 519‑58. [DOI: 10.1177/0037549717726868](https://doi.org/10.1177/0037549717726868).\n\n### Alternatives\n\nMany other tools allow modeling and simulation based on the DEVS theory. Here is a non-exhaustive list:\n- [VLE](http://www.vle-project.org) (Virtual Laboratory Environment)\n- [ADEVS](http://web.ornl.gov/~1qn/adevs/)\n- [PythonPDEVS](http://msdl.cs.mcgill.ca/projects/DEVS/PythonPDEVS)\n- [CD++](http://cell-devs.sce.carleton.ca/mediawiki/index.php/Main_Page)\n- [PowerDEVS](https://sourceforge.net/projects/powerdevs/)\n- [DEVS-Suite](http://acims.asu.edu/software/devs-suite/)\n- [MS4Me](http://www.ms4systems.com)\n- [James II](http://jamesii.informatik.uni-rostock.de/jamesii.org/)\n\n## Contributors\n\n- [[RomainFranceschini]](https://github.com/RomainFranceschini) Romain Franceschini - creator, maintainer (University of Corsica Pasquale Paoli)\n\n## Contributing\n\n1. Fork it (https://github.com/RomainFranceschini/quartz/fork)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new pull request.\n\n## License\n\nThis software is governed by the CeCILL-C license under French law and\nabiding by the rules of distribution of free software.  You can use,\nmodify and/ or redistribute the software under the terms of the CeCILL-C\nlicense as circulated by CEA, CNRS and INRIA at the following URL\n\"http://www.cecill.info\".\n\nThe fact that you are presently reading this means that you have had\nknowledge of the CeCILL-C license and that you accept its terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRomainFranceschini%2Fquartz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRomainFranceschini%2Fquartz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRomainFranceschini%2Fquartz/lists"}