https://github.com/dbrgn/tangible
Tangible is a Python library to convert data into tangible 3D models.
https://github.com/dbrgn/tangible
Last synced: 10 months ago
JSON representation
Tangible is a Python library to convert data into tangible 3D models.
- Host: GitHub
- URL: https://github.com/dbrgn/tangible
- Owner: dbrgn
- License: other
- Created: 2013-10-07T14:27:38.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2020-03-12T23:43:41.000Z (over 6 years ago)
- Last Synced: 2025-09-13T06:17:19.370Z (10 months ago)
- Language: Python
- Size: 249 KB
- Stars: 34
- Watchers: 2
- Forks: 4
- Open Issues: 8
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.rst
Awesome Lists containing this project
- awesome-digital-twins - dbrgn/tangible: Tangible is a Python library to convert data into tangible 3D models.
README
Tangible
========
.. image:: https://img.shields.io/travis/dbrgn/tangible/master.svg
:alt: Travis-CI build status
:target: http://travis-ci.org/dbrgn/tangible
.. image:: https://img.shields.io/coveralls/dbrgn/tangible/master.svg
:target: https://coveralls.io/r/dbrgn/tangible
:alt: Coverage Status
.. image:: https://img.shields.io/pypi/v/tangible.svg
:target: https://pypi.python.org/pypi/tangible/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/wheel/tangible.svg
:target: https://pypi.python.org/pypi/tangible/
:alt: Wheel Availability
*Tangible* is a Python library to convert data into tangible 3D models. It
generates code for different backends like *OpenSCAD* or *ImplicitCAD*. It is
inspired by projects like *OpenSCAD* and *d3.js*.
.. image:: https://raw.github.com/dbrgn/tangible/master/example1.jpg
:alt: Example 1
Implementation
--------------
The difference from Projects like *SolidPython* is that *Tangible* is a modular
system with an intermediate representation of objects that is capable of
generating code for different backends, not just *OpenSCAD*. Additionally, its
main focus is not general CAD, but printable 3D visualization of data.
The workflow to get a real object from data is as follows::
Python code => Intermediate representation (AST) => Programmatic CAD code
=> STL file => Slicer => G code => 3D printer => Tangible object
Of these, *Tangible* does the first three steps. The fourth step is handled by
a programmatic CAD tool like *OpenSCAD* or *ImplicitCAD* and the last four
steps are handled by the specific 3D printer software.
Currently supported Python version is 2.7 and 3.4+.
This library was my student research project thesis at `HSR `_.
You can find the thesis paper here: https://files.dbrgn.ch/sa-thesis.pdf
Contributions are very welcome! Please open an issue or a pull request.
Installation
------------
You can install Tangible directly via PyPI::
pip install tangible
If you want the current development version::
pip install -e git+https://github.com/dbrgn/tangible#egg=tangible-dev
Documentation
-------------
Documentation can be found on ReadTheDocs: `http://tangible.readthedocs.org/
`_
If you want to know more about the architecture of the library, please refer to
my `thesis PDF `_.
Coding Guidelines
-----------------
`PEP8 `__ via `flake8
`_ with max-line-width set to 99 and
E126-E128,E266,E731 ignored.
All Python files must start with an UTF8 encoding declaration and some
`future-imports `_:
.. sourcecode:: python
# -*- coding: utf-8 -*-
from __future__ import print_function, division, absolute_import, unicode_literals
Docstrings convention: `Sphinx style `__.
Testing
-------
Prepare::
pip install -r requirements-dev.txt --use-mirrors
pip install -e .
Run tests::
pytest
Violations of the PEP8 coding guidelines above will be counted as test fails.
Versioning
----------
Tangible implements `Semantic Versioning 2.0
`_.
License
-------
LGPLv3 or later `http://www.gnu.org/licenses/lgpl.html
`_