{"id":23684790,"url":"https://github.com/taciturnaxolotl/bundom","last_synced_at":"2025-04-11T05:23:43.536Z","repository":{"id":270134170,"uuid":"909412755","full_name":"taciturnaxolotl/bundom","owner":"taciturnaxolotl","description":"the pixel swarm shall conquer","archived":false,"fork":false,"pushed_at":"2025-01-02T22:19:52.000Z","size":2506,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T06:08:12.448Z","etag":null,"topics":["bun","pixels","swarm"],"latest_commit_sha":null,"homepage":"https://place.danieldb.uk/","language":"TypeScript","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/taciturnaxolotl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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},"funding":{"github":"kcoderhtml"}},"created_at":"2024-12-28T16:19:58.000Z","updated_at":"2025-02-03T22:45:32.000Z","dependencies_parsed_at":"2024-12-28T18:20:25.960Z","dependency_job_id":null,"html_url":"https://github.com/taciturnaxolotl/bundom","commit_stats":null,"previous_names":["taciturnaxolotl/bundom"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taciturnaxolotl%2Fbundom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taciturnaxolotl%2Fbundom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taciturnaxolotl%2Fbundom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taciturnaxolotl%2Fbundom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taciturnaxolotl","download_url":"https://codeload.github.com/taciturnaxolotl/bundom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248346490,"owners_count":21088463,"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","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":["bun","pixels","swarm"],"created_at":"2024-12-29T20:48:24.794Z","updated_at":"2025-04-11T05:23:43.515Z","avatar_url":"https://github.com/taciturnaxolotl.png","language":"TypeScript","funding_links":["https://github.com/sponsors/kcoderhtml"],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/taciturnaxolotl/bundom/master/.github/images/corgi.png\" width=\"200\" alt=\"Logo\"/\u003e\u003cbr/\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/taciturnaxolotl/carriage/master/.github/images/transparent.png\" height=\"45\" width=\"0px\"/\u003e\n    Bundom\n    \u003cimg src=\"https://raw.githubusercontent.com/taciturnaxolotl/carriage/master/.github/images/transparent.png\" height=\"30\" width=\"0px\"/\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ci\u003eAccomplishing domination of pixel land.\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://raw.githubusercontent.com/taciturnaxolotl/carriage/master/.github/images/line-break-thin.svg\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://raw.githubusercontent.com/taciturnaxolotl/bundom/master/.github/images/cli.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://raw.githubusercontent.com/taciturnaxolotl/carriage/master/.github/images/line-break-thin.svg\" /\u003e\n\u003c/p\u003e\n\n## What's this?\n\nBundom is a quick project I made to achieve domination of [place.danieldb.uk](https://place.danieldb.uk/). It is a swarm based model that relies on a server I host at `hackclub.app:38425` to assign blocks of pixels to clients. The client then draws the pixels on the canvas and `ack` back to the server. The server then assigns the next block of pixels to the client and the process repeats until the canvas is filled. The cool part though is that this is all done in such a way that its almost effortless to setup a client. Registration is automatic and the client is ✨kind✨ fault tolerant.  \n\nIf you want to see a mildly corny demo video then I made a short which you can find here: [https://youtube.com/shorts/bh3vvy5NyKg](https://youtube.com/shorts/bh3vvy5NyKg)\n\n## How do I use it?\n\n```bash\nbun install\n```\n\nThen run the following command to start the client:\n\n```bash\nbun run swarm/client.ts\n```\n\nAlso make sure to have this in your `.env` file:\n\n```bash\nBEARER_TOKEN=test\nSERVER_URL=http://hackclub.app:38425\n```\n\n### Hosting\n\nI'm hosting on nest so I just setup a systemd service file that runs `bun run swarm/server.ts` in the root dir of this repo. Then I setup caddy but was having issues with the ip not being passed properly so I just used the raw port lol.\n\n```bash\nBEARER_TOKEN=test\nPORT=3000 # Optional\n```\n\n### Usage\n\nYou literally just need to run it. It will automatically register with the server and start drawing pixels. The server will assign you a block of pixels to draw and you just draw them. Once you're done you `ack` back to the server and it will assign you the next block of pixels. The server will keep assigning you blocks of pixels until the canvas is filled.\n\n```bash\nbun run swarm/client.ts\n```\n\nThere is also a dashboard of sorts which you can see in the screenshot below. It got an absurd amount of dials and knobs by the end of making this project. It also gives an overlay of what the swarm is trying to draw at the moment, how many bots are active, and where the bots are working. It can be started with a quick\n\n```bash\nbun run canvas/index.ts\n```\n\nTechnically that file also runs a testing version of the canvas but I don't have it hooked up rn. (it wouldn't be that hard to fix though; just replace references to hackclub.app with locahost)\n\n![the dashboard running](https://raw.githubusercontent.com/taciturnaxolotl/bundom/master/.github/images/canvas.png)\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://raw.githubusercontent.com/taciturnaxolotl/carriage/master/.github/images/line-break.svg\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u0026copy 2024-present \u003ca href=\"https://github.com/taciturnaxolotl\"\u003eKieran Klukas\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://github.com/taciturnaxolotl/bundom/blob/master/LICENSE.md\"\u003e\u003cimg src=\"https://img.shields.io/static/v1.svg?style=for-the-badge\u0026label=License\u0026message=MIT\u0026logoColor=d9e0ee\u0026colorA=363a4f\u0026colorB=b7bdf8\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaciturnaxolotl%2Fbundom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaciturnaxolotl%2Fbundom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaciturnaxolotl%2Fbundom/lists"}