Skip to content

πŸͺ΄ Digital Garden with Digital Plants (Project for Programing Course 2024)

License

Notifications You must be signed in to change notification settings

codemorphist/DigitalGarden

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Cover


Navigation


πŸ”Ž About the Project

DigitalGarden is a digital plant generator that employs circle-drawing agents. Apart from stand-alone plant generation, you can also combine (i.e. "smash") previously generated plants in a variety of ways, and save/share your findings thereafter.


πŸš€ How to run it?

Dependencies

  • 🐍 python >= 3.11: the programming language
  • πŸ–ΌοΈ Pillow >= 10.3.0: used for drawing plants
  • πŸͺ΄ plant_generator: used for plant generation
  • πŸ› οΈ tools: ancillary instruments

First of all, clone the project repository and switch to the corresponding directory:

$ git clone https://github.com/codemorphist/DigitalGarden.git --depth 1
$ cd DigitalGarden

Your further actions will depend upon the operating system and the dependency manager you are using:

Poetry

The project employs the Poetry dependency manager; thus, if you wish to run the code quickly, regardless of your operating system, you can download Poetry and execute the following:

Download the dependencies:

$ poetry install

Run the app:

$ poetry run python app

Windows

pip

Create a new virtual environment and download the dependencies:

$ python -m venv venv
$ .\venv\Scripts\activate
$ pip install -r requirements.txt

Run the app:

$ python app

conda

If you are using conda, create a new virtual environment and activate it:

$ conda env create -f environment.yml
$ conda activate digitalgarden

Run the app:

$ python app

Linux / MacOS

pip

If you are using pip, create a new virtual environment and download the dependencies:

$ python -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt

Run the app:

$ python app

conda

If you are using conda, create a new virtual environment and activate it:

$ conda env create -f environment.yml
$ conda activate digitalgarden

Run the app:

$ python app

πŸ”₯ How to use it?

In this Section you will find detailed information regarding generating plants, combining them, as well as managing them through a file system:

Generate Plant

Generate Plant

Generate Plant

  1. The canvas; here the generated plant will display
  2. The progress bar; it shows the current stage of plant generation
  3. The genome input table
  4. The import button; it allows for importing genomes from files
  5. The random generation button; it fills out the genome table with random values
  6. The export button; it allows for exporting the genome into a file
  7. The generation button; it launches an animated generation process
  8. The fast generation button; it launches an animationless generation process
  9. The save button; it allows for saving images of the generated plants

Smash Plants

Smash Plants

Smash Plants

  1. The canvas with a progress bar that will display the first parent
  2. The canvas with a progress bar that will display the child plant
  3. The canvas with a progress bar that will display the second parent
  4. This import button allows for importing a parent genome
  5. This button launches an animated generation process for a parent
  6. This button launches an animationless generation process for a parent
  7. This button opens a window where the genome combination method can be set
  8. This button launches the generation of the child plant
  9. This button allows for exporting the genome of the child plant
  10. This button allows for saving the image of the child plant

Mass Smash

Mass Smash

Mass Smash

  1. The canvas with a progress bar that will display the child plant
  2. The list of parent genomes (order-sensitive)
  3. This button moves the selected parent genomes one position upward in the list
  4. This button moves the selected parent genomes one position downward in the list
  5. This button allows for importing other parent genomes and adding them to the list
  6. This buttons allows for deleting selected parent genomes from the list
  7. This button opens a window where the genome combination method can be set
  8. This button launches an animated generation of the child plant
  9. This button launches an animationless generation of the child plant
  10. This button allows for exporting the genome of the child plant
  11. This button allows for saving the image of the child plant

🏞️ Gallery

The plant gallery is available via DigitalGarden Gallery

πŸ“ƒ License

The project source code is distributed under the GNU General Public License v3.0
Further information about the license is to be found via LICENCE

πŸ’» Developers

Alex Katrenko
@codemorphist
Illia Karbyshev
@karbyshevillia