{"id":43293783,"url":"https://github.com/corinaminer/triangle-puzzle","last_synced_at":"2026-02-01T18:36:24.991Z","repository":{"id":50296912,"uuid":"141776692","full_name":"corinaminer/triangle-puzzle","owner":"corinaminer","description":"Documenting solutions to my triangle puzzle.","archived":false,"fork":false,"pushed_at":"2025-11-06T06:53:14.000Z","size":1126,"stargazers_count":2,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-06T08:32:10.814Z","etag":null,"topics":["geometric-shapes","puzzle","puzzle-game","puzzle-solution"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/corinaminer.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-07-21T03:02:23.000Z","updated_at":"2025-11-06T06:53:18.000Z","dependencies_parsed_at":"2025-08-14T01:14:42.174Z","dependency_job_id":null,"html_url":"https://github.com/corinaminer/triangle-puzzle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/corinaminer/triangle-puzzle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corinaminer%2Ftriangle-puzzle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corinaminer%2Ftriangle-puzzle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corinaminer%2Ftriangle-puzzle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corinaminer%2Ftriangle-puzzle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/corinaminer","download_url":"https://codeload.github.com/corinaminer/triangle-puzzle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corinaminer%2Ftriangle-puzzle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28985818,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T18:17:03.387Z","status":"ssl_error","status_checked_at":"2026-02-01T18:16:57.287Z","response_time":56,"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":["geometric-shapes","puzzle","puzzle-game","puzzle-solution"],"created_at":"2026-02-01T18:36:24.218Z","updated_at":"2026-02-01T18:36:24.985Z","avatar_url":"https://github.com/corinaminer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NEW: Solve online!\nCheck out the new [online solver](https://corinaminer.github.io/triangle-puzzle/)! Let me know what you think. I will be continuing to make minor improvements in the coming weeks.\n\n# About the triangle puzzle\nThis repository documents manually discovered solutions to my triangle puzzle. The goal is to fit the 12 pieces into the given frame, as shown below. I've called it the triangle puzzle because each piece can be constructed out of 6 equilateral triangles. Notably, the 12 pieces represent ALL possible arrangements of 6 equilateral triangles joined edge-to-edge on a triangular grid, a.k.a. [\"hexiamonds\"](https://mathworld.wolfram.com/Hexiamond.html).\n\n\u003cimg src=\"https://raw.githubusercontent.com/corinaminer/triangle-puzzle/master/assets/example_solution.png\"/\u003e\n\nI've had this puzzle for most of my life, and started documenting solutions around 2002. Thanks to [David Goodger's Polyform Puzzler site](https://puzzler.sourceforge.net/docs/hexiamonds.html), we know the total number of solutions is 5885. This was recently reconfirmed by user kqyrt's [comprehensive solution list](https://github.com/corinaminer/triangle-puzzle/issues/14), which contains 11770 solutions including mirror images.\n\nI created this repo in 2018 to more efficiently document new solutions and programmatically check if they had already been discovered. At that time, I had discovered about 400 unique solutions and never found a repeat. The first repeat was found in September 2018.\n\n## Sister solutions\nMany solutions have sister solutions reachable by flipping or rotating a group of pieces that forms a symmetric shape, swapping two groups of pieces that form the same shape, or otherwise adjusting the original. I've identified sisters by providing both an ID and a sub-ID for each solution; sister solutions share the same ID. There is no formal definition of how major a transformation has to be to qualify as a new solution instead of a sister solution: but ultimately it doesn't really matter if you just want to know how many unique solutions there are. I've generally considered any solution found by looking at an existing solution as a sister solution to that one.\n\n## How solutions are encoded\nIf you find a new solution with the [online solver](https://corinaminer.github.io/triangle-puzzle/), a message will pop up showing an encoded version of your solution. The key to the encoding of this puzzle is that the frame can be broken down into 72 triangles:\n\n\u003cimg src=\"https://raw.githubusercontent.com/corinaminer/triangle-puzzle/master/assets/blank.jpg\" width=\"32%\"/\u003e\n\nSolutions are recorded as 72-character strings. Each character corresponds to 1 triangle in the frame, and indicates which piece covers that triangle based on the piece IDs shown below. The solution describes the triangles in each row from left to right, top to bottom: the first three characters correspond to the three triangles in the first row, etc.\n\n![piece key](https://raw.githubusercontent.com/corinaminer/triangle-puzzle/master/assets/pieces.png)\n\nExample solution and corresponding encoding:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cimg src=\"https://raw.githubusercontent.com/corinaminer/triangle-puzzle/master/assets/example_solution.png\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cpre\u003e      77b\n     977bb\n    9977bbb\n   993311100\n  49333110000\n 4444232155588\n 6642222a55588\n  6666aaaaa88\u003c/pre\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### Adding a solution with Python\nYou're welcome to [file an issue reporting a new solution](https://github.com/corinaminer/triangle-puzzle/issues/new?template=report-a-new-solution.md) and I will take care of entering it in the system. However, if you want to do it yourself, you can clone the repo and add your solution using [`puzzle.ipynb`](https://github.com/corinaminer/triangle-puzzle/blob/master/puzzle.ipynb). While it is technically possible to enter a solution directly into `solutions.csv`, it's critical that solutions be entered with Python to ascertain that the solution has not already been discovered.\n\n#### Dependencies\nYou will need a Python 3 environment with `matplotlib` and `jupyter`:\n```\npip install matplotlib\npip install jupyter\n```\n\n#### Entering your solution\nOpen the Jupyter notebook (run `jupyter notebook` in the repo's root). Run the first cell, then fill in author name, date, and solution in the second cell and run it. There are a few options for what the output looks like:\n1. An illustration of the solution you've entered, along with a summary of the other parameters you've entered and an input field with the text \"Press enter if good\". Success! Please review the illustration and parameters. If you need to change something, type anything in the input field (I like \"no\" or \"asdf\") and the solution won't be recorded yet. Otherwise, just hit enter and your solution will be added to `solutions.csv`.\n\n1. Same as above, except with text \"WARNING: Did not pass basic check\" and no input field. This means your solution is invalid. Please check your solution input and the illustration and try again.\n\n1. An empty frame and an error message resulting from an invalid parameter. Hopefully those messages should be pretty clear, but if not, let me know by [filing an issue](https://github.com/corinaminer/triangle-puzzle/issues/new) - it's possible the parameter verification code has a bug.\n\n1. (And I can't fully rule out) a stack trace. If this happens, please [file an issue](https://github.com/corinaminer/triangle-puzzle/issues/new) with your stack trace and parameters so I can fix it. If you want to debug it yourself, great, but please notify me of the bug. Feel free to do so by opening a pull request with your fix! ;)\n\n## Computational approaches\nAs mentioned above, two people have independently found the total number of solutions to be 5885. David Goodger's code is available [here](https://puzzler.sourceforge.net/puzzler/). (He also has ideas about expanding his project [here](https://puzzler.sourceforge.net/docs/todo.html) if you're interested in getting involved, although that page was last updated in 2015.)\n\nIf you feel like writing code to recompute the solution set, I'm happy to hear about a third confirmation of the solution count. I will mention you and your code (if published) in the readme. However, please do not use this repo as your workspace or add computer-generated solutions to `solutions.csv`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorinaminer%2Ftriangle-puzzle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorinaminer%2Ftriangle-puzzle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorinaminer%2Ftriangle-puzzle/lists"}