{ "info": { "author": "Frank Murphy, et al", "author_email": "fpmurphy@mtu.edu", "bugtrack_url": null, "classifiers": [], "description": ".. image:: logo.png\n :target: https://mybinder.org/v2/gh/anirishduck/petrify/master?filepath=examples/logo.ipynb\n :alt: Petrify Logo\n\n.. image:: https://travis-ci.org/AnIrishDuck/petrify.svg?branch=master\n :target: https://travis-ci.org/AnIrishDuck/petrify\n\n.. image:: https://readthedocs.org/projects/petrify/badge/?version=latest\n :target: https://petrify.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://mybinder.org/badge_logo.svg\n :target: https://mybinder.org/v2/gh/anirishduck/petrify/master?filepath=examples/solids.ipynb\n\nA library for constructing, importing, visualizing, modifying, and exporting\nthree-dimensional geometry and toolpaths. Designed for CAD / CAM applications.\n\nTo get started with this library, we recommend walking through the demos below.\nEach notebook contains links to our comprehensive class and method-level\ndocumentation_.\n\n.. _documentation: https://petrify.readthedocs.io/en/latest/?badge=latest\n\nOnline Demo\n-----------\n\nThanks to the magic of binder_, you can try out petrify online. We have demos\nfor several core petrify features:\n\n- Construction of many basic solids_.\n- Methods for defining advanced_ solids.\n- Combining_ multiple solids into a single complex solid.\n- Setting visual_ properties on solids to create the above logo.\n\nHave patience; notebooks on binder can take up to a minute to start. Due to a\n(possible) bug in pythreejs, you'll need to click \"restart and run all\" to see\nthe relevant interactive visualizations.\n\n.. _binder: https://mybinder.org\n.. _solids: https://mybinder.org/v2/gh/anirishduck/petrify/master?filepath=examples/solids.ipynb\n.. _advanced: https://mybinder.org/v2/gh/anirishduck/petrify/master?filepath=examples/advanced.ipynb\n.. _Combining: https://mybinder.org/v2/gh/anirishduck/petrify/master?filepath=examples/csg.ipynb\n.. _visual: https://mybinder.org/v2/gh/anirishduck/petrify/master?filepath=examples/logo.ipynb\n\nDesign Principles\n-----------------\n\n- **Novice focus**. This library should make it as easy as possible to build\n and manipulate solids, shapes, and other geometry.\n- **Immutable operation**. Immutable math is easier for most audiences to reason\n about. This library explicitly does not target strong real-time applications\n like games that demand mutability for performance.\n- **Pluggable engines**. CSG is complicated. Different engines have different\n tradeoffs:\n\n - The pymesh engine is the default where the pymesh2_ library is installed. It\n uses the CGAL CSG engine, which is mature and quite fast. However, building\n pymesh with CGAL support can be difficult for novices and in certain\n environments (like Windows and OSX).\n - cython-csg is relatively fast, but still requires a cython build toolchain.\n - pycsg is a pure-python implementation. It is obviously quite slow, but works\n everywhere python does. For example, pure python environments like pyiodide_\n can utilize this engine easily.\n\n.. _pymesh2: https://pypi.org/project/pymesh2/\n.. _pyiodide: https://github.com/iodide-project/pyodide\n\nQuickstart with Docker\n----------------------\n\nWe recommend using petrify inside our prepackaged docker_ image. This image\nhas all the necessary libraries for running a Jupyter notebook server, and the\npymesh engine already installed::\n\n docker run -it -p 8888:8888 \\\n -v $(pwd)/notebooks:/home/jovyan/work \\\n anirishduck/petrify\n\nThe above command will expose a notebook on port 8888 with the necessary volume\nmounts for persisting the `work` directory. The server will output a\n:code:`?token=` query parameter you will need for authentication.\n\n.. _docker: https://docker.com\n\nInstallation\n------------\n\npetrify is published online via pip::\n\n pip install petrify\n\nWe strongly recommend using its visualization capabilities in combination with\nJupyter_::\n\n pip install notebook pythreejs\n\nWhile petrify is functional from this point, you almost certainly want to\ninstall a more powerful engine than the default pycsg one. See our csg_ example\nfor more detail on why; read on to learn how.\n\n.. _Jupyter: https://jupyter.org/\n.. _csg: https://github.com/AnIrishDuck/petrify/blob/master/examples/csg.ipynb\n\npymesh2\n=======\n\npymesh is the most mature driver, but also has the most complicated installation\nprocedure. We currently only recommend this installation in a Linux-like\nenvironment. You can also use WSL_ if on Windows, or a VM on OSX.\n\nYou will need to build pymesh with CGAL_ support to use this engine. To install\nin Ubuntu or Debian environments::\n\n sudo apt-get install libcgal-dev\n\nNow, you can install using the normal PyMesh installation procedure_. In\nLinux-like environments, you can probably just install all the needed\nlibrary dependencies in the documentation, and then run::\n\n pip install pymesh2\n\n.. _WSL: https://docs.microsoft.com/en-us/windows/wsl/install-win10\n.. _CGAL: https://www.cgal.org/\n.. _MacPorts: https://www.macports.org/\n.. _procedure: https://pymesh.readthedocs.io/en/latest/installation.html\n\ncython-csg\n==========\n\nInstallation of cython-csg requires a working build of cython, which should be\navailable on most major platforms::\n\n pip install cython\n\nFrom here, the installation of cython-csg should be entirely automated::\n\n pip install cython-csg\n\nContributors\n------------\n\nThis library is a fusion of:\n\n- pycsg\n- pyeuclid v3 fork (https://github.com/ezag/pyeuclid/)\n- the reverbat STL PR on pycsg (https://github.com/timknip/pycsg/pull/9)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/petrify/", "keywords": "", "license": "LICENSE", "maintainer": "", "maintainer_email": "", "name": "petrify", "package_url": "https://pypi.org/project/petrify/", "platform": "", "project_url": "https://pypi.org/project/petrify/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/petrify/" }, "release_url": "https://pypi.org/project/petrify/0.8.1/", "requires_dist": null, "requires_python": "", "summary": "a programmatic cad library", "version": "0.8.1" }, "last_serial": 5921561, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c97652c3f76ba286c3eef4759d1c3744", "sha256": "bd84364fa6bffe405832da8eb9369dfb05896f844158a477a30a8773d1895af9" }, "downloads": -1, "filename": "petrify-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c97652c3f76ba286c3eef4759d1c3744", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16589, "upload_time": "2019-02-03T01:18:24", "url": "https://files.pythonhosted.org/packages/b0/cd/80403909d7e668c505a3033e6fa2dc8672162c7db177cc437e9df5dc2d80/petrify-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d3f1e10825a3c6c6963280219f6c733a", "sha256": "2bc4b428e00ec50d411907a938fe47c6ddeacf035ba4794f66e15190e058a775" }, "downloads": -1, "filename": "petrify-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d3f1e10825a3c6c6963280219f6c733a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32661, "upload_time": "2019-04-20T22:12:42", "url": "https://files.pythonhosted.org/packages/52/35/e1e99072cddb131f1be43d1c1e831a5983a5c761e1d3d3d92ea8acaff461/petrify-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "34b776db4860f25d5fecc6ae2c3b7319", "sha256": "16112c5df53bfc8b6155e5e2a6cc412f67eaa18fec79d5f4ab86ad7eb3eac07e" }, "downloads": -1, "filename": "petrify-0.2.1.tar.gz", "has_sig": false, "md5_digest": "34b776db4860f25d5fecc6ae2c3b7319", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32706, "upload_time": "2019-04-21T03:27:51", "url": "https://files.pythonhosted.org/packages/0d/d5/19971b9e79182c6e19baf404fb85657083cb06c31ad18bfbb8ad08587770/petrify-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b4ecd4a4d7368e94351d182fa63a36e0", "sha256": "e775661de2905ee0279f62ee850c53d9c67f8b75b7298349c8856bccba5c2ded" }, "downloads": -1, "filename": "petrify-0.3.0.tar.gz", "has_sig": false, "md5_digest": "b4ecd4a4d7368e94351d182fa63a36e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42197, "upload_time": "2019-06-24T04:34:44", "url": "https://files.pythonhosted.org/packages/d7/42/e5048904c651d97756e44e1966d09c2febc5fe87398f2ba237f414600acf/petrify-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "a3bbd23e698e49a25a4e420f49d8cf4e", "sha256": "7248f3350e98667942a2fe9f960c19e6df434945e16b059d6980276a5dd05a3a" }, "downloads": -1, "filename": "petrify-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a3bbd23e698e49a25a4e420f49d8cf4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43412, "upload_time": "2019-07-01T02:10:24", "url": "https://files.pythonhosted.org/packages/34/a8/27a1ad19628821e7079673a3854e771d2d9d0b8b5bb9725f22447b1630b5/petrify-0.4.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "ea2d24f179b01f1ee8ec63915a5ca267", "sha256": "9971de636655eae847d490777177b6e8033ef38200cba0e2c57bd1aca2fd42ea" }, "downloads": -1, "filename": "petrify-0.7.0.tar.gz", "has_sig": false, "md5_digest": "ea2d24f179b01f1ee8ec63915a5ca267", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48264, "upload_time": "2019-10-01T23:39:13", "url": "https://files.pythonhosted.org/packages/ac/54/c0a7ba80dc30460d9ddf4b910284ebad140e22a2de10d7693bfa56386eb6/petrify-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "49926934a1c2fad060504ec08b10c332", "sha256": "3f4bc25903fe2ce3c39b2e02fc24118312f89722cab134be8a80b9439107c4d1" }, "downloads": -1, "filename": "petrify-0.8.0.tar.gz", "has_sig": false, "md5_digest": "49926934a1c2fad060504ec08b10c332", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48266, "upload_time": "2019-10-03T03:54:55", "url": "https://files.pythonhosted.org/packages/9c/46/e52722e7bb922c62e9949fe4d5fc653c8fa704919ee61588e251a306ea65/petrify-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "c388d6b6ae453703876baf8568dc7788", "sha256": "97650d496314ad0fe5bbc0af78abadda76b3511951f5546892282dd0df9b583b" }, "downloads": -1, "filename": "petrify-0.8.1.tar.gz", "has_sig": false, "md5_digest": "c388d6b6ae453703876baf8568dc7788", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48264, "upload_time": "2019-10-03T04:04:24", "url": "https://files.pythonhosted.org/packages/c1/4c/2590df9e4f051cc151e1783f84336422aa6c210c192675c39df2cde4c5df/petrify-0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c388d6b6ae453703876baf8568dc7788", "sha256": "97650d496314ad0fe5bbc0af78abadda76b3511951f5546892282dd0df9b583b" }, "downloads": -1, "filename": "petrify-0.8.1.tar.gz", "has_sig": false, "md5_digest": "c388d6b6ae453703876baf8568dc7788", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48264, "upload_time": "2019-10-03T04:04:24", "url": "https://files.pythonhosted.org/packages/c1/4c/2590df9e4f051cc151e1783f84336422aa6c210c192675c39df2cde4c5df/petrify-0.8.1.tar.gz" } ] }