Polyhex is a Python library to easily create polyhexes from regular hexagons and export their underlying graph structure to deep-learning frameworks.
Polyhex aims to be at the interface between a natural creation of polyhexes and a reliable graph representation of the polyhexes' attributes.
It was designed for the Material Science and Reinforcement Learning communities, but can surely be used for other purposes.
Key Features:
- Beginner friendly. Create a polyhex, from
▶️ A list of hexagons or a number of hexagons
▶️ Predefined shapes with flexible dimensions - Modular. Record a polyhex's graph structure: record the edges, the vertices, the hexagons and the border of a polyhex in a simple call.
- Built for Machine-Learning. Polyhex offers an off-the-shelf export of your graphs to PyGeom, a popular framework for deep-learning on graphs.
Installing polyhex should be as easy as
pip install polyhex
You can then have a look at the examples folder.
Visit the documentation on Polyhex's ReadTheDocs
- Ability to create a polyhex and export it to PyGeom's data format.
- Implementation of games rules and scoring, like Cascadia
- Game assets
- C++ routines
- OpenSpiel binders
Any contribution and feedback is greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the Apache License. See LICENSE for more information.
Contact the authors directly at: emilienvalat@gmail.com
Huge thanks to Amit Patel (Red Blob Games) for all the resources about hexagons.