GEFEST
GEFEST copied to clipboard
Toolbox for the generative design of geometrically-encoded physical objects using numerical modelling and evolutionary optimization
.. image:: /docs/img/gefest_logo.png :alt: Logo of GEFEST framework
.. start-badges .. list-table:: :stub-columns: 1
-
- package
- | |pypi| |python|
-
- tests
- | |build|
-
- docs
- |docs|
-
- license
- | |license|
-
- support
- | |tg|
-
- gitlab
- | |gitlab|
-
- funding
- | |ITMO| |NCCR|
.. end-badges
GEFEST (G\enerative E\volution F\or E\ncoded ST\ructures) is a toolbox for the generative design of physical objects.
In core it uses:
- Numerical modelling to simulate the interaction between object and environment
- Evolutionary optimization to produce new variants of geometrically-encoded structures
The basic abstractions in GEFEST are Point, Polygon, Structure and Domain. Architecture of the GEFEST can be described as:
.. figure:: /docs/img/workflow.png :figwidth: image :align: center
The evolutionary workflow of the generative design is the following:
.. figure:: /docs/img/evo.png :figwidth: image :align: center
The dynamics of the optimisation can be visualized as (breakwaters optimisation case):
.. image:: /docs/img/breakwaters.gif
How to use
All details about first steps with GEFEST might be found in the quick start guide <https://gefest.readthedocs.io/en/latest/gefest/quickstart.html>__.
Tutorals for more spicific use cases can be found tutorial section of docs <https://gefest.readthedocs.io/en/latest/tutorials/index.html>__.
Project Structure
The latest stable release of GEFEST is on the main branch <https://github.com/ITMO-NSS-team/GEFEST/tree/main>__.
The repository includes the following directories:
- Package
core <https://github.com/ITMO-NSS-team/GEFEST/tree/main/gefest/core>__ contains the main classes and scripts. It is the core of GEFEST framework; - Package
cases <https://github.com/ITMO-NSS-team/GEFEST/tree/main/cases>__ includes several how-to-use-cases where you can start to discover how GEFEST works; - All unit and integration tests can be observed in the
test <https://github.com/ITMO-NSS-team/GEFEST/tree/main/test>__ directory; - The sources of the documentation are in the
docs <https://github.com/ITMO-NSS-team/GEFEST/tree/main/docs>__. - Weights of pretrained DL models can be downloaded from
this repository <https://gitlab.actcognitive.org/itmo-nss-team/gefest-models>__.
Cases and examples
Note: To run the examples below, the old kernel gefest version, which can be installed on python 3.7 with:
.. code-block:: bash
pip install git+https://github.com/aimclub/GEFEST.git@4f9c34c449c0eb65d264476e5145f09b4839cd70
Experiments <https://github.com/ITMO-NSS-team/GEFEST-paper-experiments>__ with various real and synthetic casesCase <https://github.com/ITMO-NSS-team/rbc-traps-generative-design>__ devoted to the red blood cell traps design.
Migrated examples can be found in cases folder of the main branch.
Current R&D and future plans
Currently, we are working on integration of new types of physical objects with consideration of their internal structure.\n
The major ongoing tasks:
- to integrate three dimensional physical objects
- to implement gradient based approaches for optimization of physical objects
Documentation
Detailed information and description of GEFEST framework is available in the Read the Docs <https://gefest.readthedocs.io/en/latest/>__
Contribution guide
The contribution guide is available in the page <https://gefest.readthedocs.io/en/latest/contribution.html>__
Acknowledgments
We acknowledge the contributors for their important impact and the participants of the numerous scientific conferences and workshops for their valuable advice and suggestions.
Contacts
Telegram channel for solving problems and answering questions on GEFEST <https://t.me/gefest_helpdesk>_Natural System Simulation Team <https://itmo-nss-team.github.io/>_Newsfeed <https://t.me/NSS_group>_Youtube channel <https://www.youtube.com/channel/UC4K9QWaEUpT_p3R4FeDp5jA>_
Supported by
National Center for Cognitive Research of ITMO University <https://actcognitive.org/>_
Citation
@article{starodubcev2023generative, title={Generative design of physical objects using modular framework}, author={Starodubcev, Nikita O and Nikitin, Nikolay O and Andronova, Elizaveta A and Gavaza, Konstantin G and Sidorenko, Denis O and Kalyuzhnaya, Anna V}, journal={Engineering Applications of Artificial Intelligence}, volume={119}, pages={105715}, year={2023}, publisher={Elsevier}}
@inproceedings{solovev2023ai, title={AI Framework for Generative Design of Computational Experiments with Structures in Physical Environment}, author={Solovev, Gleb Vitalevich and Kalyuzhnaya, Anna and Hvatov, Alexander and Starodubcev, Nikita and Petrov, Oleg and Nikitin, Nikolay}, booktitle={NeurIPS 2023 AI for Science Workshop}, year={2023}}
.. |build| image:: https://github.com/aimclub/GEFEST/workflows/unit%20tests/badge.svg?branch=main :alt: Build Status :target: https://github.com/aimclub/GEFEST/actions
.. |docs| image:: https://readthedocs.org/projects/gefest/badge/?version=latest :target: https://gefest.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
.. |license| image:: https://img.shields.io/github/license/ITMO-NSS-team/GEFEST :alt: Supported Python Versions :target: ./LICENSE.md
.. |tg| image:: https://img.shields.io/badge/Telegram-Group-blue.svg :target: https://t.me/gefest_helpdesk :alt: Telegram Chat
.. |ITMO| image:: https://github.com/ITMO-NSS-team/open-source-ops/blob/add_badge/badges/ITMO_badge_rus.svg :alt: Acknowledgement to ITMO :target: https://itmo.ru
.. |NCCR| image:: https://github.com/ITMO-NSS-team/open-source-ops/blob/add_badge/badges/NCCR_badge.svg :alt: Acknowledgement to NCCR :target: https://actcognitive.org/
.. |gitlab| image:: https://img.shields.io/badge/mirror-GitLab-orange :alt: GitLab mirror for this repository :target: https://gitlab.actcognitive.org/itmo-nss-team/GEFEST
.. |pypi| image:: https://img.shields.io/pypi/v/gefest.svg :alt: PyPI Package Version :target: https://img.shields.io/pypi/v/gefest
.. |python| image:: https://img.shields.io/pypi/pyversions/gefest.svg :alt: Supported Python Versions :target: https://img.shields.io/pypi/pyversions/gefest