- π About the Project
- π How to run it?
- π₯ How to use it?
- ποΈ Gallery
- π License
- π» Developers
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.
- π
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:
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
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
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
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
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
In this Section you will find detailed information regarding generating plants, combining them, as well as managing them through a file system:
Generate Plant
- The canvas; here the generated plant will display
- The progress bar; it shows the current stage of plant generation
- The genome input table
- The import button; it allows for importing genomes from files
- The random generation button; it fills out the genome table with random values
- The export button; it allows for exporting the genome into a file
- The generation button; it launches an animated generation process
- The fast generation button; it launches an animationless generation process
- The save button; it allows for saving images of the generated plants
Smash Plants
- The canvas with a progress bar that will display the first parent
- The canvas with a progress bar that will display the child plant
- The canvas with a progress bar that will display the second parent
- This import button allows for importing a parent genome
- This button launches an animated generation process for a parent
- This button launches an animationless generation process for a parent
- This button opens a window where the genome combination method can be set
- This button launches the generation of the child plant
- This button allows for exporting the genome of the child plant
- This button allows for saving the image of the child plant
Mass Smash
- The canvas with a progress bar that will display the child plant
- The list of parent genomes (order-sensitive)
- This button moves the selected parent genomes one position upward in the list
- This button moves the selected parent genomes one position downward in the list
- This button allows for importing other parent genomes and adding them to the list
- This buttons allows for deleting selected parent genomes from the list
- This button opens a window where the genome combination method can be set
- This button launches an animated generation of the child plant
- This button launches an animationless generation of the child plant
- This button allows for exporting the genome of the child plant
- This button allows for saving the image of the child plant
The plant gallery is available via DigitalGarden Gallery
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
Alex Katrenko @codemorphist |
Illia Karbyshev @karbyshevillia |