EvoVis
EvoVis: Dashboard for Visualizing Evolutionary Neural Architecture Search Algorithms - Published in JOSS (2025)
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: joss.theoj.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.6%) to scientific vocabulary
Scientific Fields
Repository
Basic Info
- Host: GitHub
- Owner: ankilab
- License: apache-2.0
- Language: Python
- Default Branch: main
- Size: 13.7 MB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
EvoVis
EvoVis is a dashboard for visualizing Evolutionary Neural Architecture Search (ENAS) algorithms. ENAS is an optimization process that mimics biological evolution to automatically discover optimal neural network architectures for specific tasks. It starts with a population of randomly generated architectures and iteratively improving them through selection, crossover, and mutation.

EvoVis offers a holistic view of the ENAS process. It provides insights into architectural evolution and performance optimization.The key features of EvoVis are the following:
- Hyperparameter Overview: Efficiently tune hyperparameters with an overview of settings.
- Gene Pool Graph: Visualize potential neural architecture topologies and connectivity patterns across generations.
- Family Tree Graph: Navigate the family tree of architectures, analyze performance metrics, and explore structures.
- Performance Plots: Monitor performance trends in real-time with evolutionary metrics.
- Data Structure Interface: Support for visualizing ENAS results from various frameworks and sources.
Contents
Getting Started
- EvoVis Cloning: Clone the EvoVis repository from GitHub and navigate to the project directory. (Note: This is a maintained fork of the original repository leadang42/EvoVis, which was transferred to ankilab for continued development.)
git clone https://github.com/leadang42/EvoVis.git
cd EvoVis
EvoVis Dependencies: Install the project's dependencies. This project was developed and tested using Python 3.11.3. While it may work with other versions of Python, compatibility with versions other than 3.11.3 is not guaranteed.
pip3 install -r requirements.txtEvoVis Execution: Run EvoVis by specifying your run results directory path or use the sample enas run in the enasexamplerunresults directory. ````
python3 EvoVis.py <runresultspath>python3 EvoVis.py ./enasexamplerunresults ````EvoVis Usage: Access EvoVis dashboard via the provided localhost and explore the hyperparameters, gene pool graph, family tree graph, and performance plots.
Compatible ENAS Algorithms

- Gene Pool: DAG-structured and one searchable level (e.g. no hierarchical search spaces)
- Fitness: Multi-objective and single-objective fitness functions
- Selection: All strategies
- Crossover: One-point crossover strategy
- Mutation: All strategies
Data Structure Interface
In order to visualize ENAS runs with EvoVis, the ENAS algorithm must output a run results directory that follows a specific data structure. See the enas_example_run_results directory as an example. Here's an overview of the run results directory structure, followed by a detailed description of the contained files:

config.json
The JSON file provides the hyperparameters of the ENAS algorithm and the results of measurements conducted on the neural architectures. Additionally, the hyperparameters and results are accompanied by additional settings to modify the EvoVis UI. The only mandatory hyperparameter is generations, which defines the number of iterations for an ENAS run. EvoVis relies on this parameter to monitor the ENAS run’s progress.
Settings for the hyperparameters in config.json
| Key | Description |
| --- | --- |
| value | The value of the parameter. (Required) |
| unit | The unit of measurement for the parameter. |
| icon | The icon representing the parameter from Iconify. |
| displayname | The human-readable name of the parameter. |
| group | The category to which the parameter belongs that determines the grouping of the parameters. |
| description | A brief description explaining the significance of the parameter. |
Settings for the results in config.json
| Key | Description |
| --- | --- |
| displayname | The human-readable name of the result metric. |
| unit | The unit of measurement for the result. |
| run-result-plot | Indicates whether to include result in run results page. |
| individual-info-plot | Indicates whether to include result in family tree page. |
| pareto-optimlity-plot | Indicates whether to include result in the multi-objective mapping plot (fitness function objectives).|
| individual-info-img | The image representing the result found in src/assets/icons directory. |
| min-boundary | The minimum boundary for valid result values. |
| max-boundary | The maximum boundary for valid result values. |
crossover_parents.csv
The CSV file logs crossover events between parent individuals, each represented as a tuple with their names and crossover points. It specifies the resulting new individuals of a newly evolving generation. From the logs the family tree graph is generated.
search_space.json
The JSON file serves as the blueprint for generating the gene pool DAG from which the initial population for ENAS is derived.
| Key | Description |
| --- | --- |
| gene_pool | Contains neural network layers categorized into groups based on functionality. Each layer is represented by a unique identifier layer and associated parameters. |
| rule_set | Specifies which subsequent genes can follow a given gene. The rule set must contain a Start which determines the starting point within the gene sequence, influencing the accessibility of subsequent genes. |
| rule_set_group | Specifies which subsequent group can follow a given group and therefore facilitates indirect connections between genes based on group associations. |
chromosome.json
The individual’s chromosome JSON file contains a sequence of genes from the gene_pool of the search_space.json that encodes the neural architecture.
results.json
The individual’s result JSON file contains the measurements and fitness of an individual.
| Key | Description |
| --- | --- |
| fitness | Stores the fitness from the training process. (Required) |
| metric | Stores metrics from the training process. These metrics correspond to the measurements specified in the config.json file. |
| error | Indicates whether the individual was successfully trained. If set to true, the individual’s metrics will not be included in the evaluation analysis of the ENAS run. |
Project Code Organization

License
EvoVis is licensed under the Apache License. See LICENSE file for details.
Contact
For any inquiries or support, please contact lea.van.anh.dang@gmail.com.
EvoVis aims to visualize ENAS processes to provide researchers and practitioners with a comprehensive tool for understanding and optimizing neural architectures.
Owner
- Name: anki lab
- Login: ankilab
- Kind: organization
- Location: Germany
- Website: https://www.anki.xyz
- Twitter: anki_xyz
- Repositories: 5
- Profile: https://github.com/ankilab
Citation (CITATION.cff)
cff-version: 1.1.0
message: "If you use this software, please cite it as below."
title: "EvoVis: Dashboard for Visualizing Evolutionary Neural Architecture Search Algorithms"
version: "v1.0.0"
date-released: 2024-07-17
keywords:
- Python
- Evolutionary neural architecture search algorithm
- Neural architecture search algorithm
- Optimization algorithm
- Deep learning
authors:
- family-names: Dang
given-names: Lea
orcid: https://orcid.org/0009-0005-6056-0725
affiliation: Friedrich-Alexander-Universität Erlangen-Nürnberg, Germany
- family-names: Groh
given-names: René
orcid: https://orcid.org/0000-0002-3405-1311
affiliation: Friedrich-Alexander-Universität Erlangen-Nürnberg, Germany
- family-names: Kist
given-names: Andreas M.
orcid: https://orcid.org/0000-0003-3643-7776
affiliation: Friedrich-Alexander-Universität Erlangen-Nürnberg, Germany
repository-code: https://github.com/ankilab/EvoVis
GitHub Events
Total
- Issues event: 7
- Watch event: 2
- Issue comment event: 4
- Member event: 2
- Push event: 24
- Pull request event: 1
- Fork event: 1
- Create event: 2
Last Year
- Issues event: 7
- Watch event: 2
- Issue comment event: 4
- Member event: 2
- Push event: 24
- Pull request event: 1
- Fork event: 1
- Create event: 2
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 4
- Total pull requests: 2
- Average time to close issues: about 1 month
- Average time to close pull requests: 2 days
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 1.25
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 4
- Pull requests: 2
- Average time to close issues: about 1 month
- Average time to close pull requests: 2 days
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 1.25
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- B3J4y (4)
Pull Request Authors
- jbytecode (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- dash ==2.10.2
- dash-bootstrap-components ==1.5.0
- dash-cytoscape ==0.3.0
- dash-iconify ==0.1.2
- dash-mantine-components ==0.12.0
- matplotlib ==3.7.1
- numpy ==1.24.2
- pandas ==2.0.1
- plotly ==5.17.0
- plotly-express ==0.4.1
- python-dotenv ==1.0.0
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- openjournals/openjournals-draft-action master composite