{"id":18371037,"url":"https://github.com/emptyflash/hydrabreeder","last_synced_at":"2025-10-10T05:13:15.881Z","repository":{"id":149693654,"uuid":"487967886","full_name":"emptyflash/hydrabreeder","owner":"emptyflash","description":"Lifecoding with hydra","archived":false,"fork":false,"pushed_at":"2022-05-06T18:52:47.000Z","size":106,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T23:46:04.581Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emptyflash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-02T19:35:15.000Z","updated_at":"2022-05-02T19:36:00.000Z","dependencies_parsed_at":"2023-04-27T16:47:16.629Z","dependency_job_id":null,"html_url":"https://github.com/emptyflash/hydrabreeder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/emptyflash/hydrabreeder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emptyflash%2Fhydrabreeder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emptyflash%2Fhydrabreeder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emptyflash%2Fhydrabreeder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emptyflash%2Fhydrabreeder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emptyflash","download_url":"https://codeload.github.com/emptyflash/hydrabreeder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emptyflash%2Fhydrabreeder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002788,"owners_count":26083468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T23:42:46.430Z","updated_at":"2025-10-10T05:13:15.863Z","avatar_url":"https://github.com/emptyflash.png","language":"Python","readme":"# hydrabreeder\nLifecoding with hydra. Hydra breeder is a genetic algorithm applied to [hydracodegenerator](https://github.com/alecominotti/hydracodegenerator).\nIt uses per frame entropy as a fitness function, and \"breeds\" two programs by randomly swapping sources from each.\n\n## Getting started\nInstall the dependencies with `pip3 install -r requirements.txt`. Then run `python3 main.py`.\n\nThis should open a python controlled chrome browser and begin running the genetic algorithm.\nThe best (most entropic) program from each generation will be displayed. \n\nYou can tweak settings in `main.py`, primarily the number of iterations, population size,\nand the number of frames to take from each program.\n\nFor livecoding performances, you can tweak the program to look better and fit the music more while\nthe next generation is running. Here's an example of the kind of results this produced at the [Chaos2 Algorave](https://youtu.be/QDE03-YZON4) in NYC.\n\n## Future work\nThis thing can produce some pretty cool stuff. However, much of it can be a little too chaotic for most livecoding purposes.\n\nI think this is mostly because the ultimate goal of optimizing for entropy is to just produce pure noise.\n\nIt may make sense to come up with a better fitness function, either by manually extracting features\n(entropy, change between frames, color count, etc.) of what makes a hydra sketch \"look good\", or by training a GAN on\nstills from existing hydra sketches and using the discriminator to determine fitness.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femptyflash%2Fhydrabreeder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femptyflash%2Fhydrabreeder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femptyflash%2Fhydrabreeder/lists"}