{ "info": { "author": "Nick Choly", "author_email": "nickcholy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Other Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# ViewSCAD: CAD in Jupyter\n\nViewSCAD is a module that renders within a Jupyter notebook 3D objects described in the [OpenSCAD](https://openscad.org) language, or described using the [SolidPython](https://github.com/SolidCode/SolidPython) module. It provides a workflow for CAD design completely within the Jupyter notebook.\n\n## Installation\nViewSCAD utilizes the `openscad` executable to render objects, and as such, OpenSCAD must be installed on your system. \n\nViewSCAD installs simply with pip:\n```\npip install viewscad\n```\nViewSCAD uses the `pythreejs` notebook extension to render the 3D graphics.\nIf you intend to use `jupyter notebook`, you should be all set. However, if you intend to use `jupyter lab`, additional steps are necessary to get `pythreejs` working in the lab. Firstly, you must install [node.js and npm](https://nodejs.org/en/download/). Then you must install the lab extensions:\n```\njupyter labextension install @jupyter-widgets/jupyterlab-manager\n```\n\n## Setup and Usage\n\nSee the [OpenSCAD](https://openscad.org) and [SolidPython](https://github.com/SolidCode/SolidPython) pages for how to use these languages to represent geometric objects.\n\nThe following shows how to use ViewSCAD to render a SolidPython object in Jupyter:\n![solidpython example](https://github.com/nickc92/ViewSCAD/blob/master/images/solidpython_example.png)\n\nViewSCAD attempts to locate your openscad executable, based on your platform, but failing that, you can set the `OPENSCAD_EXEC` environment variable to point at your `openscad` command-line executable, or pass it in the constructor of the renderer:\n```\nrenderer = viewscad.Renderer(openscad_exec='path_of_my_openscad')\n```\n\nYou can also render OpenSCAD code:\n![openscad example](images/openscad_example.png)\n\nThe renderer can also create an `.STL` file directly by simply adding an `outfile` keyword:\n```\nr.render(c, outfile='my_thing.stl')\n```\n\n### Intropection\n\nBy double-clicking on a rendered object, you can select faces, edges, and vertices, and learn their indices. This allows you\nto use several useful utilities, like `Renderer.rotate_face_down()` put orient the object with a particular face downward,\nor `Renderer.place_on()`, which lets you place one object upon another:\n![introspection example](https://github.com/nickc92/ViewSCAD/blob/master/images/introspection_example.png)\n\n## Acknowledgements\n\nThanks to Evan Jones for help creating the PyPI package.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nickc92/ViewSCAD", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "viewscad", "package_url": "https://pypi.org/project/viewscad/", "platform": "", "project_url": "https://pypi.org/project/viewscad/", "project_urls": { "Homepage": "https://github.com/nickc92/ViewSCAD" }, "release_url": "https://pypi.org/project/viewscad/0.2.0/", "requires_dist": [ "jupyter", "jupyterlab", "ipywidgets", "pythreejs", "solidpython" ], "requires_python": "", "summary": "Jupyter renderer for the OpenSCAD & SolidPython constructive solid geometry systems", "version": "0.2.0" }, "last_serial": 4716426, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c7e496020e929750e81c98dd0b6e5918", "sha256": "03893ce5e3c104aad6cf02c564fd32b545fb61db33e615c6282483f93b3606d2" }, "downloads": -1, "filename": "viewscad-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c7e496020e929750e81c98dd0b6e5918", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5891, "upload_time": "2018-12-01T23:20:13", "url": "https://files.pythonhosted.org/packages/ad/07/827be7e2303f3ea4214ce688bdc415f97f7eb1a18f16558019797f516fba/viewscad-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99a2029d06929690e28c7d873ee173c5", "sha256": "9c51b4f09b2e3c2ada84554dc25121bf68f4b68bd33adae8d053f3fa98d79210" }, "downloads": -1, "filename": "viewscad-0.1.0.tar.gz", "has_sig": false, "md5_digest": "99a2029d06929690e28c7d873ee173c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5506, "upload_time": "2018-12-01T23:20:15", "url": "https://files.pythonhosted.org/packages/5c/57/79c8e69d932dfcbad0a447d1ac2c1aead690249b3f7439a2a43cf75e9fcd/viewscad-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9c63df0f8812fbee73da202ed13254a9", "sha256": "e38dea99329636e6d41e3182258b6f6321b8c1d419478269887ce8767d2773c4" }, "downloads": -1, "filename": "viewscad-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9c63df0f8812fbee73da202ed13254a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5889, "upload_time": "2018-12-02T01:21:50", "url": "https://files.pythonhosted.org/packages/2d/e6/aa8ddf33ad0b73e1bf6342e64618c5bec3bcede4f043f7bef230db02e0dc/viewscad-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78ed3ce25852291756baf3024f936415", "sha256": "1ce5a4976f9c21c0bc54f1f6d31f412dda1b04094d551239138339c79fb2ee25" }, "downloads": -1, "filename": "viewscad-0.1.1.tar.gz", "has_sig": false, "md5_digest": "78ed3ce25852291756baf3024f936415", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5537, "upload_time": "2018-12-02T01:21:52", "url": "https://files.pythonhosted.org/packages/84/90/3c17ecc7b6a841d9a06af81426850304e0120864cdf1a45ed5d7178f5381/viewscad-0.1.1.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e89f11b9733b3ae318c88bd8a5046227", "sha256": "bfc582b5ee562a6e4aecf0e43c0ec14180eb69443ec49e5b395922b061913695" }, "downloads": -1, "filename": "viewscad-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e89f11b9733b3ae318c88bd8a5046227", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6736, "upload_time": "2018-12-04T16:44:19", "url": "https://files.pythonhosted.org/packages/12/7a/ebaf7f38164d5efba18c2458786b104e90888a29860826db0763a17a3718/viewscad-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ab882929ad9aae4ea818fdd8d6c3ce4", "sha256": "05aa71c96e3f6f87682c73a4439b65fe295b376bf7e0ebff5a05ceebdaa3b49d" }, "downloads": -1, "filename": "viewscad-0.1.3.tar.gz", "has_sig": false, "md5_digest": "2ab882929ad9aae4ea818fdd8d6c3ce4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5772, "upload_time": "2018-12-04T16:44:20", "url": "https://files.pythonhosted.org/packages/c5/04/d20cb4fc0e3a5502bdf51383dfcf416050149ce59d39d1e74b2c3f644c4f/viewscad-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "17265a9e5ceff741df45e9ae0cdac48e", "sha256": "1a9acee819605e72012aad95e092598e8c9f38cbcd9cace72cc23113cdfa0646" }, "downloads": -1, "filename": "viewscad-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "17265a9e5ceff741df45e9ae0cdac48e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6766, "upload_time": "2018-12-06T21:52:19", "url": "https://files.pythonhosted.org/packages/25/a2/7fa5f475e0497d77d3fba527f9dc9f801e0575622a67ea1481110263a458/viewscad-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6578cfc49f92f43607dc6db9ab8c62d0", "sha256": "fddd8dea77bb20300ab843b2fb9ab78298205b63283b50614efd6732ae780f14" }, "downloads": -1, "filename": "viewscad-0.1.4.tar.gz", "has_sig": false, "md5_digest": "6578cfc49f92f43607dc6db9ab8c62d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5810, "upload_time": "2018-12-06T21:52:21", "url": "https://files.pythonhosted.org/packages/d9/c0/11b713d7d2057ace6ac173fec6b179013aa40590161f2b17a111d9dc31c7/viewscad-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "b9b5db00edd5b8aa93c3ca4c7944487b", "sha256": "ce18ec7b1b2a04aa2b648cc543535ee9441b41362026e8bdbe544b39aef1ad5e" }, "downloads": -1, "filename": "viewscad-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "b9b5db00edd5b8aa93c3ca4c7944487b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7147, "upload_time": "2018-12-28T20:47:55", "url": "https://files.pythonhosted.org/packages/b2/dc/773544420a4bd5ffdc5ee7bf233f00e0545c8e09d7cddc389cda6580f44d/viewscad-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0cb2bf6e24e665319dad2b3163607cb", "sha256": "6494f80ed0aa8ffaa3e6b6dc8c8bb2c9ec3c4f219a933b41511dcf803d9dda5c" }, "downloads": -1, "filename": "viewscad-0.1.5.tar.gz", "has_sig": false, "md5_digest": "f0cb2bf6e24e665319dad2b3163607cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6178, "upload_time": "2018-12-28T20:47:56", "url": "https://files.pythonhosted.org/packages/28/5a/b4607bc78ba7599a90bec1733ed29dbf059f8b8b22fc6c49576a52b878a1/viewscad-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "621820084ae31393b4731b9ef2a34d32", "sha256": "4ef438e1ee6f793da9611326185c7a4522106dc2da6acb27d66877317ef8bee8" }, "downloads": -1, "filename": "viewscad-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "621820084ae31393b4731b9ef2a34d32", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7170, "upload_time": "2019-01-13T23:53:06", "url": "https://files.pythonhosted.org/packages/59/87/23630b33b5121cccdf9049f92ffd1d547e31efce6256007ac558769e7b13/viewscad-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f38651c39ff34be735a32243b8509eea", "sha256": "7e621f11a6dbe376a7ea494503fe1bdaf0815278fb4730ade7faa02bbc5cec82" }, "downloads": -1, "filename": "viewscad-0.1.6.tar.gz", "has_sig": false, "md5_digest": "f38651c39ff34be735a32243b8509eea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6203, "upload_time": "2019-01-13T23:53:08", "url": "https://files.pythonhosted.org/packages/ef/f9/553077dc8e4fc48b25685025a9d04654b438091ee45fd824388984439aa9/viewscad-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a2833381ee267157e833eb8762e9cec1", "sha256": "00b72aeda1d35c398f7b3a2dc82b78ac19cd38064cb179fb465499d2faaf698a" }, "downloads": -1, "filename": "viewscad-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a2833381ee267157e833eb8762e9cec1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15214, "upload_time": "2019-01-19T20:12:00", "url": "https://files.pythonhosted.org/packages/f8/92/571fd0e02fe9bd8594c24ec196f3d30280facf0e556c897de34b58a16499/viewscad-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f72eb84010395df5df4b19f23fdf3e98", "sha256": "7a3309c48ed9e48e4c3db44b6f0e38c2f6022b8521a4555a7aeddac87ca3bebb" }, "downloads": -1, "filename": "viewscad-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f72eb84010395df5df4b19f23fdf3e98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12340, "upload_time": "2019-01-19T20:12:02", "url": "https://files.pythonhosted.org/packages/24/b3/ddc85d1c210a8dc44df1db4619ea816ac5ee9bbd3fb4c0a715a96b9f1f8e/viewscad-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a2833381ee267157e833eb8762e9cec1", "sha256": "00b72aeda1d35c398f7b3a2dc82b78ac19cd38064cb179fb465499d2faaf698a" }, "downloads": -1, "filename": "viewscad-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a2833381ee267157e833eb8762e9cec1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15214, "upload_time": "2019-01-19T20:12:00", "url": "https://files.pythonhosted.org/packages/f8/92/571fd0e02fe9bd8594c24ec196f3d30280facf0e556c897de34b58a16499/viewscad-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f72eb84010395df5df4b19f23fdf3e98", "sha256": "7a3309c48ed9e48e4c3db44b6f0e38c2f6022b8521a4555a7aeddac87ca3bebb" }, "downloads": -1, "filename": "viewscad-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f72eb84010395df5df4b19f23fdf3e98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12340, "upload_time": "2019-01-19T20:12:02", "url": "https://files.pythonhosted.org/packages/24/b3/ddc85d1c210a8dc44df1db4619ea816ac5ee9bbd3fb4c0a715a96b9f1f8e/viewscad-0.2.0.tar.gz" } ] }