{"id":22195352,"url":"https://github.com/amanpriyanshu/fl-interactive-game","last_synced_at":"2026-01-29T16:36:21.126Z","repository":{"id":264412466,"uuid":"893266429","full_name":"AmanPriyanshu/FL-Interactive-Game","owner":"AmanPriyanshu","description":"FL-Interactive-Game: Interactive web game that teaches basic components of Federated Learning","archived":false,"fork":false,"pushed_at":"2024-11-24T06:04:28.000Z","size":18868,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T00:31:53.651Z","etag":null,"topics":["computer-vision","decentralized-learning","distributed-training","federated-learning","federated-learning-framework","fl","game","interactive-visualizations","machine-learning","mnist","neural-network","neural-networks","privacy","privacy-enhancing-technologies","privacy-protection","tensorflow","tensorflowjs"],"latest_commit_sha":null,"homepage":"https://amanpriyanshu.github.io/FL-Interactive-Game/","language":"HTML","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/AmanPriyanshu.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-24T00:54:30.000Z","updated_at":"2024-11-24T19:26:00.000Z","dependencies_parsed_at":"2025-10-13T00:30:52.544Z","dependency_job_id":"939ec9e2-c5d6-428e-89d6-5a428fb7afc1","html_url":"https://github.com/AmanPriyanshu/FL-Interactive-Game","commit_stats":null,"previous_names":["amanpriyanshu/fl-js-mnist"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AmanPriyanshu/FL-Interactive-Game","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmanPriyanshu%2FFL-Interactive-Game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmanPriyanshu%2FFL-Interactive-Game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmanPriyanshu%2FFL-Interactive-Game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmanPriyanshu%2FFL-Interactive-Game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AmanPriyanshu","download_url":"https://codeload.github.com/AmanPriyanshu/FL-Interactive-Game/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmanPriyanshu%2FFL-Interactive-Game/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28880980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"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":["computer-vision","decentralized-learning","distributed-training","federated-learning","federated-learning-framework","fl","game","interactive-visualizations","machine-learning","mnist","neural-network","neural-networks","privacy","privacy-enhancing-technologies","privacy-protection","tensorflow","tensorflowjs"],"created_at":"2024-12-02T13:18:19.345Z","updated_at":"2026-01-29T16:36:21.109Z","avatar_url":"https://github.com/AmanPriyanshu.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎮 Federated Learning Interactive Game\n\u003cdiv style=\"display: flex; gap: 10px;\"\u003e\n    \u003cimg src=\"/assets/non_iid_demo.gif\" width=\"49%\" alt=\"Non-IID FL Game Demo\"/\u003e\n    \u003cimg src=\"/assets/iid_demo.gif\" width=\"49%\" alt=\"IID FL Game Demo\"/\u003e\n\u003c/div\u003e\n\n\nCheckout the game at: [FL-Interactive-Game](https://amanpriyanshu.github.io/FL-Interactive-Game/)\n\nAn interactive web-based demonstration that makes learning about Federated Learning fun! Train models across multiple clients, experiment with different parameters, and watch your global model improve - all without sharing raw data.\n\n## 🌟 Features\n\n- **Interactive Client Management**: Control 5 independent clients training on MNIST data\n- **Real-time Visualization**: Watch training progress with live accuracy plots\n- **Configurable Parameters**: \n  - Per-client learning rates and epoch counts\n  - Communication dropout probability\n  - Data distribution settings (IID vs Non-IID)\n- **Model Aggregation**: Combine client models into a stronger global model\n- **Responsive Design**: Works seamlessly on both desktop and mobile devices\n\n## 🎯 Learning Objectives\n\nThis game helps you understand:\n- How Federated Learning works in practice\n- Impact of different learning rates and training durations\n- Effects of communication dropouts in distributed learning\n- Differences between IID and Non-IID data distributions\n- Model aggregation and its effects on global performance\n\n## 🎲 How to Play\n\n1. Choose your data distribution (IID or Non-IID)\n   - IID: Balanced data\n   - Non-IID: Chaos mode\n   - *Remember to refresh when switching - those sneaky old models like to hang around! 🔄*\n\n2. Configure each client:\n   - Adjust learning rates (0.00001 to 0.001)\n   - Set training epochs (5 to 15)\n\n3. Set global parameters:\n   - Adjust communication dropout probability\n   - This simulates real-world network conditions\n\n4. Start training:\n   - Train clients individually or all at once\n   - Watch the accuracy plots evolve\n   - Aggregate models to improve global performance\n\n## 🔧 Technical Details\n\n- Built with TensorFlow.js\n- Uses MNIST dataset (preprocessed for FL setting)\n- Neural Network Architecture:\n  - Input Layer: 784 neurons (28x28 images)\n  - Hidden Layer: 64 neurons, ReLU activation\n  - Output Layer: 10 neurons, Softmax activation\n\n## 🏆 Challenge Goals\n\n1. Beat 90% accuracy on the global model\n2. Achieve consistent performance across all clients\n3. Maintain good performance with high dropout rates\n4. Master both IID and Non-IID scenarios\n\n## Some Known Issues\n\n- Model states persist between data distribution switches (refresh required)\n- Some mobile devices may experience performance lag with multiple clients\n- High learning rates can cause training instability\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famanpriyanshu%2Ffl-interactive-game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famanpriyanshu%2Ffl-interactive-game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famanpriyanshu%2Ffl-interactive-game/lists"}