{"id":21150737,"url":"https://github.com/reubenjohn/creative_diversity","last_synced_at":"2026-05-08T11:34:33.742Z","repository":{"id":72663647,"uuid":"116571927","full_name":"reubenjohn/creative_diversity","owner":"reubenjohn","description":"Simple Unsupervised Machine Learning to optimise for diversity whilst maintaining uniqueness","archived":false,"fork":false,"pushed_at":"2022-01-02T12:55:31.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-14T14:24:51.227Z","etag":null,"topics":["autoencoder","dancing-robot","machine-learning","neural-networks","opencv","tensorboard","tensorflow","unsupervised-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reubenjohn.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":"2018-01-07T14:27:18.000Z","updated_at":"2022-03-09T19:20:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"c69890aa-bfd0-4b68-98bd-5ee789d2dbed","html_url":"https://github.com/reubenjohn/creative_diversity","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/reubenjohn/creative_diversity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubenjohn%2Fcreative_diversity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubenjohn%2Fcreative_diversity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubenjohn%2Fcreative_diversity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubenjohn%2Fcreative_diversity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reubenjohn","download_url":"https://codeload.github.com/reubenjohn/creative_diversity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubenjohn%2Fcreative_diversity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32778730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["autoencoder","dancing-robot","machine-learning","neural-networks","opencv","tensorboard","tensorflow","unsupervised-learning"],"created_at":"2024-11-20T10:06:47.194Z","updated_at":"2026-05-08T11:34:33.708Z","avatar_url":"https://github.com/reubenjohn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Creative Diversity\n===\nSimple setup to optimise for diversity whilst maintaining uniqueness.\n\n[![Arm Dance](https://img.youtube.com/vi/b_T1iQYkQRk/0.jpg)](https://www.youtube.com/watch?v=b_T1iQYkQRk)  \nVideo demo of of it getting a bunch of arms to dance uniquely to one another\n\n\n[![Internal structure](https://img.youtube.com/vi/SvkLbaj4irA/0.jpg)](https://www.youtube.com/watch?v=SvkLbaj4irA)  \nVideo demo of it's internal structure\n\nFYI, it can be tweaked to do a lot more than get the arms to dance. For instance, it can be used to create doodles, make funny facial expressions, etc. I would love to see someone take it for a spin! Or maybe even help out with the To Do List.\n\nHow it works (Geek only section)\n---\nTake any environment where you can perform an action that has an observable effect on the environment.  \nBuild a model that acts on this environment in n different ways such that it itself can easily distinguish between these n ways of interacting given the observable effects it has on the environment.\n\nThus, it should work well irrespective of what the environment represents, bet it typing, painting, animating, navigating, etc.\n\nTo Do List\n ---\n - Use the image as input instead of the internal state (arm joint states) to optimise for **visually** distinct dancing rather than quantitatively **distinct** dancing! After all, this project is more about the eye candy ;)\n - Use a variational auto-encoder instead to increase diversity\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freubenjohn%2Fcreative_diversity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freubenjohn%2Fcreative_diversity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freubenjohn%2Fcreative_diversity/lists"}