{"id":19773211,"url":"https://github.com/mbarbin/cubzzle","last_synced_at":"2026-04-02T12:02:00.546Z","repository":{"id":91167150,"uuid":"489907954","full_name":"mbarbin/cubzzle","owner":"mbarbin","description":"Solver for a wooden cube puzzle","archived":false,"fork":false,"pushed_at":"2026-03-24T12:03:45.000Z","size":1039,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-25T12:16:13.712Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mbarbin.github.io/cubzzle/","language":"OCaml","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/mbarbin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"COPYING.HEADER","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","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":"2022-05-08T10:10:14.000Z","updated_at":"2026-03-24T12:03:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"75f68930-4180-4b6a-aeb8-be2b5aeee6ad","html_url":"https://github.com/mbarbin/cubzzle","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/mbarbin/cubzzle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbarbin%2Fcubzzle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbarbin%2Fcubzzle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbarbin%2Fcubzzle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbarbin%2Fcubzzle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mbarbin","download_url":"https://codeload.github.com/mbarbin/cubzzle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbarbin%2Fcubzzle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"last_error":"SSL_read: 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":[],"created_at":"2024-11-12T05:08:59.021Z","updated_at":"2026-04-02T12:02:00.541Z","avatar_url":"https://github.com/mbarbin.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cubzzle\n\n[![CI Status](https://github.com/mbarbin/cubzzle/workflows/ci/badge.svg)](https://github.com/mbarbin/cubzzle/actions/workflows/ci.yml)\n[![Coverage Status](https://coveralls.io/repos/github/mbarbin/cubzzle/badge.svg?branch=main)](https://coveralls.io/github/mbarbin/cubzzle?branch=main)\n\nThis is a toy project implementing a brute force solver for a small wooden puzzle that I use to have at home.\n\n## What's the puzzle ?\n\nThere are 6 wooden pieces made of small cubes that can fit into a 3x3x3 box.\n\n![The puzzle](images/puzzle.png)\n\n## What does the solver do ?\n\nThe solver finds a solution and displays it in a Graphics window.\n\n![The cube](images/cube.png)\n\nSo that one can see exactly how the pieces fit, the display allows for inspecting pieces individually.\n\n![The cube help](images/cube-help.png)\n\n## Other shapes\n\nYou can assemble the same pieces into other shapes as well, such as a Dog:\n\n![The dog](images/dog.png)\n\nor a Tower, etc.\n\n![The tower](images/tower.png)\n\n## Install\n\nReleases for this project are published to a custom opam-repo. To add it to your current opam switch, run:\n\n```sh\nopam repo add mbarbin https://github.com/mbarbin/opam-repository.git\n```\n\nThen you can install `cubzzle` using a normal opam workflow.\n\n```sh\nopam install cubzzle\n```\n\n## Running the code\n\nThe following command will open an OCaml Graphics window and run the solver:\n\n```bash\n$ cubzzle run\n```\n\nA few shapes are available (Cube, Dog, Tower, etc.). To solve a different shape, provide the option `--shape`. You can also draw the box during the brute force search, to see the solver run through all permutations interactively.\n\n```bash\n$ cubzzle run --shape=Tower --draw-box-during-search=true\n```\n\n## Motivations\n\nI wanted to have a small code sample using OCaml Graphics on GitHub.\n\n## Code Documentation\n\nThe code documentation of the latest release is built with `odoc` and published to `GitHub` pages [here](https://mbarbin.github.io/cubzzle).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbarbin%2Fcubzzle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmbarbin%2Fcubzzle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbarbin%2Fcubzzle/lists"}