GEFEST icon indicating copy to clipboard operation
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:

  1. Numerical modelling to simulate the interaction between object and environment
  2. 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 cases
  • Case <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