{"id":21140889,"url":"https://github.com/glotzerlab/coxeter","last_synced_at":"2025-07-09T07:05:55.247Z","repository":{"id":42461173,"uuid":"169876897","full_name":"glotzerlab/coxeter","owner":"glotzerlab","description":"Collection of tools to help initialize and manipulate shapes.","archived":false,"fork":false,"pushed_at":"2025-05-02T19:04:22.000Z","size":25900,"stargazers_count":23,"open_issues_count":13,"forks_count":5,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-07T04:07:27.567Z","etag":null,"topics":["computational-geometry","geometry","physics","polygons","polyhedra","shapes"],"latest_commit_sha":null,"homepage":"https://coxeter.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glotzerlab.png","metadata":{"files":{"readme":"README.rst","changelog":"ChangeLog.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-02-09T14:47:58.000Z","updated_at":"2025-05-02T19:04:25.000Z","dependencies_parsed_at":"2024-01-30T16:50:51.279Z","dependency_job_id":"1b73e70a-67ec-45b6-a167-e1575d8c877a","html_url":"https://github.com/glotzerlab/coxeter","commit_stats":{"total_commits":971,"total_committers":19,"mean_commits":51.10526315789474,"dds":0.3429454170957775,"last_synced_commit":"576bd759689d2dbeb212dff62a855ecec947c24b"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glotzerlab%2Fcoxeter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glotzerlab%2Fcoxeter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glotzerlab%2Fcoxeter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glotzerlab%2Fcoxeter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glotzerlab","download_url":"https://codeload.github.com/glotzerlab/coxeter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252810273,"owners_count":21807759,"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":["computational-geometry","geometry","physics","polygons","polyhedra","shapes"],"created_at":"2024-11-20T07:18:42.044Z","updated_at":"2025-07-09T07:05:55.241Z","avatar_url":"https://github.com/glotzerlab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"coxeter\n=======\n\n|JOSS|\n|ReadTheDocs|\n|PyPI|\n|conda-forge|\n\n.. |JOSS| image:: https://joss.theoj.org/papers/10.21105/joss.03098/status.svg\n   :target: https://doi.org/10.21105/joss.03098\n.. |ReadTheDocs| image:: https://readthedocs.org/projects/coxeter/badge/?version=latest\n   :target: http://coxeter.readthedocs.io/en/latest/?badge=latest\n.. |PyPI| image:: https://img.shields.io/pypi/v/coxeter.svg\n   :target: https://pypi.org/project/coxeter/\n.. |conda-forge| image:: https://img.shields.io/conda/vn/conda-forge/coxeter.svg\n   :target: https://anaconda.org/conda-forge/coxeter\n\nWelcome to the documentation for **coxeter**!\nThe **coxeter** Python library provides tools for working with common geometric objects in two and three dimensions.\nNamed for the `20th century geometer \u003chttps://en.wikipedia.org/wiki/Harold_Scott_MacDonald_Coxeter\u003e`__ best known for his work on polytopes, **coxeter** is especially focused on polygons and polyhedra, but it also support various standard curved shapes such as spheres and ellipsoids.\n\nThe package emphasizes working with shapes as mutable objects whose geometric attributes may be accessed using property-based APIs.\nSince **coxeter** originally arose to support representations of anisotropic nanoparticles, many shapes support calculations of physical properties (such as form factors and inertia tensors) in addition to purely geometric ones.\nHowever, the package is designed with more general audiences in mind as well, and it aims to support precise calculations of a wide range of geometric quantities that are useful in a number of fields.\n\nSome core features of **coxeter** include:\n\n* Libraries of common shapes to support easy construction.\n* Mutable shape objects that can be rescaled in a variety of ways to suit a number of needs.\n* Immediate access to geometric properties of shapes via Python properties of shape objects.\n* Plotting functionality to make it easy to visualize shapes in both two and three dimensions.\n\nMore detailed information on **coxeter**'s features and examples of how to use them may be found in the `documentation \u003chttps://coxeter.readthedocs.io/\u003e`__.\n\n.. _installing:\n\nSetup\n-----\n\nThe recommended methods for installing coxeter are using **pip** or **conda**.\n\nInstallation via pip\n~~~~~~~~~~~~~~~~~~~~\n\nTo install the package from PyPI, execute:\n\n.. code:: bash\n\n   pip install coxeter --user\n\nInstallation via conda\n~~~~~~~~~~~~~~~~~~~~~~\n\nTo install the package from conda, first add the **conda-forge** channel:\n\n.. code:: bash\n\n   conda config --add channels conda-forge\n\nAfter the **conda-forge** channel has been added, you can install coxeter by executing\n\n.. code:: bash\n\n   conda install coxeter\n\nInstallation from source\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nStart by executing the following:\n\n.. code:: bash\n\n   git clone https://github.com/glotzerlab/coxeter.git\n   cd coxeter\n\nTo install coxeter and other optional dependencies, choose one of the following:\n\n.. code:: bash\n\n   pip install . # Install with no additional dependencies\n   pip install .[tests] # RECOMMENDED: Install with dependencies required to run pytests\n   pip install .[tests,doc] # Install all dependencies required to develop for coxeter\n\n\nRequirements\n~~~~~~~~~~~~\n\n-  Python \u003e= 3.9\n-  NumPy \u003e= 1.19.0\n-  SciPy \u003e= 1.0.0\n-  rowan \u003e= 1.2.0\n\nTesting\n-------\n\nThe package is currently tested for Python \u003e= 3.8 on Unix-like systems.\nContinuous integrated testing is performed using Github actions on these Python versions.\n\nFirst, install the packages required to test coxeter (if not already done):\n\n.. code:: bash\n\n   pip install -r tests/requirements.txt\n\nTo run the packaged unit tests, execute the following line from the root of the repository:\n\n.. code:: bash\n\n   pytest\n\nTo run the packaged unit tests with the coverage module:\n\n.. code:: bash\n\n   pytest --cov=coxeter\n\nBuilding Documentation\n----------------------\n\nDocumentation for coxeter is written in `reStructuredText \u003chttp://docutils.sourceforge.net/rst.html\u003e`__ and compiled using `Sphinx \u003chttp://www.sphinx-doc.org/en/master/\u003e`__.\nTo build the documentation, first install Sphinx and the other required packages:\n\n.. code:: bash\n\n   pip install -r doc/requirements.txt\n   conda install -c conda-forge fresnel\n\n.. warning::\n   The `fresnel \u003chttps://fresnel.readthedocs.io/\u003e`_ package on conda-forge must be used. The PyPI package *fresnel* is different and will not function properly.\n\nYou can then use Sphinx to create the actual documentation in either PDF or HTML form by running the following commands:\n\n.. code:: bash\n\n   cd doc\n   make html # For html output\n   make latexpdf # For a LaTeX compiled PDF file\n   open build/html/index.html\n\nSupport and Contribution\n========================\n\nThis package is hosted on `GitHub \u003chttps://github.com/glotzerlab/coxeter\u003e`_.\nPlease report any bugs or problems that you find on the `issue tracker \u003chttps://github.com/glotzerlab/coxeter/issues\u003e`_.\nAll contributions to coxeter are welcomed via pull requests!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglotzerlab%2Fcoxeter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglotzerlab%2Fcoxeter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglotzerlab%2Fcoxeter/lists"}