{ "info": { "author": "Zachary Ferguson", "author_email": "zfergus@nyu.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Multimedia :: Graphics :: 3D Modeling" ], "description": "# Seam Erasure\n\n

\n \n

\n\n

\n \n \"Build\n \n

\n\n

\n Seamlessly erase seams from your favorite 3D models.\n

\n\nTextures seams often produce errors when bi-linearly interpolated. This\nresults in a visible seam line or other undesired artifacts. The goal of this\nproject is to devise a numerical solution to this problem by minimizing the\ndifference between interpolated values of edge pairs. Works for various texture\nmaps regardless of useage (e.g. color maps, normal maps, displacement maps, \nambient occlusion, geometry images, and skinning weight textures).\n\n#### Read more:\n* [Research Project Page](https://cragl.cs.gmu.edu/seamless/)\n* [Paper](https://goo.gl/1LwB3Z)\n* [Video](https://youtu.be/kCryf9n82Y8)\n* [Seam Aware Decimation Code](https://github.com/songrun/SeamAwareDecimater)\n\n## Installation\n\nTo install Seam Erasure use the following command in your terminal:\n\n```\npip install seam-erasure\n```\n\nThis is the preferred method to install Seam Erasure. \n\nIf you perfer to use Seam Erasure without installing it, you can clone the repo:\n\n```\ngit clone https://github.com/zfergus/seagull.git\n```\n\n### Dependencies\n\nIf you install Seam Erasure using `pip` all dependencies will be installed. If you choose to use Seam Erasure without installing, you can install all required dependencies using `pip install -r requirements.txt`.\n\nDependencies include:\n* `numpy`: linear algebra\n* `scipy`: sparse matrix operations\n* `pillow`: saving/loading texture image files\n* `recordclass`: simple data objects\n* `tqdm`: fancy progressbars\n\n## Usage\n\nIf you install using `pip` a `seam-erasure` tool will be installed. You can use Seam Erase from the command line using the following command:\n\n```bash\nseam-erasure path/to/input_model path/to/input_texture [-h] [-o path/to/output_texture] [-g] [--sv {none,texture,lerp}] [-d]\n```\n\nPositional arguments:\n* `path/to/input_model`: Path to input mesh file.\n* `path/to/input_texture`: Path to input texture image or directory to load all textures from.\n\nOptional arguments:\n* `-o path/to/output_texture`, `--output path/to/output_texture`: Name of output texture or directory to save batch textures.\n* `-g`, `--global`: Should the minimization have global effects? (default: False)\n * This should be used if the texture has global discontinuities. This will propagate changes from the seam inward (see the teaser image for a example of global discontinties).\n* `--sv {none,texture,lerp}`: What method should be used to compute the seam value\nenergy? (default: `none`)\n * `none`: do not use a seam value term\n * `texture`: use difference in original texture\n * `lerp`: use linearly interpolated values along the edge\n * Values are provided at the vertices in the `.obj` as additional entries after the xyz triplet (e.g. `v [] [] [] [] ...` where the additional channels are optional and must match the number of channels in the texture image).\n* `-d`, `--data`: Should the input texture(s) be loaded as a `.data` files? (default: False)\n\n**Note:** if you did not install the code replace `seam-erasure` in the above command with `python main.py`.\n\n## Files\n\n* `seam_erasure/`: Python package for Seam-Erasure\n* `main.py`: Command-line interface for seam erasure.\n* `server.py`: Flask based Python code for handling web inputs.\n* `examples/`: examples 3D model and texture files for testing\n* `static/`: Static web page content including style sheets\n* `templates/`: HTML template pages\n\n### Web Browser UI\n\nThis repository also includes a Flask based server implementation that can be\nrun locally. This provides a simple webpage interface to provide model/texture\ninput and select options. To get this user interface run:\n\n```\npython server.py\n```\n\nThis will start a server on the localhost. Navigate to the outputted address\nin your choice of web browser to view the interface.\n\n## Examples\n\n### Diffuse Textures\n\n| Before | After |\n|:------:|:-----:|\n| | |\n| | |\n| | |\n\n### Normal Maps\n\n| Before | After |\n|:------:|:-----:|\n| | |\n| | |\n| | |\n| | |\n\n### Ambient Occlusion\n\n| Before | After |\n|:------:|:-----:|\n| | |\n\n### Geometry Images\n\n| Before | After |\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/zfergus/seam-erasure", "keywords": "3D Modeling,Textures,Computer Graphics", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "seam-erasure", "package_url": "https://pypi.org/project/seam-erasure/", "platform": "", "project_url": "https://pypi.org/project/seam-erasure/", "project_urls": { "Bug Reports": "https://github.com/zfergus/seam-erasure/issues", "Homepage": "https://github.com/zfergus/seam-erasure", "Paper": "https://goo.gl/1LwB3Z", "Research Project Page": "https://cragl.cs.gmu.edu/seamless/", "Source": "https://github.com/zfergus/seam-erasure/", "Video": "https://youtu.be/kCryf9n82Y8" }, "release_url": "https://pypi.org/project/seam-erasure/1.0.4/", "requires_dist": null, "requires_python": ">= 2.7", "summary": "Seamlessly erase seams from your favorite 3D models.", "version": "1.0.4" }, "last_serial": 5992778, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "9bc6a7f6aa037dda0e8e9d5bd6ea495e", "sha256": "9bca334954b50895d43bfff73a52f1833863bc4f145f8f4dd327a509270b1712" }, "downloads": -1, "filename": "seam_erasure-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9bc6a7f6aa037dda0e8e9d5bd6ea495e", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 27450, "upload_time": "2019-10-12T16:37:16", "url": "https://files.pythonhosted.org/packages/af/e9/737f89c315744a28a1b4e3348235bec3c97d1ad76281652260e4e31c6604/seam_erasure-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "265e247b86f056fb74ad83890c8a1842", "sha256": "ffa733cc58ffc7c9059bb497391f5509d1407d5888eff061e99a91a6d554cc32" }, "downloads": -1, "filename": "seam_erasure-1.0.1.tar.gz", "has_sig": false, "md5_digest": "265e247b86f056fb74ad83890c8a1842", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 29879, "upload_time": "2019-10-12T16:47:32", "url": "https://files.pythonhosted.org/packages/0e/7f/fa662bb4a14f77b7d84bee2932885ebdf78c5c937b408e200164af38afff/seam_erasure-1.0.1.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "6a50ae64ce5ae7a5036d24ad2bc1d31f", "sha256": "5629fdd309172835857497321d213f45fa3994ce2818e15ad557caea7564839b" }, "downloads": -1, "filename": "seam_erasure-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6a50ae64ce5ae7a5036d24ad2bc1d31f", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 29879, "upload_time": "2019-10-12T17:19:25", "url": "https://files.pythonhosted.org/packages/87/b5/5e23edfac57de00ab015c20ca7a377603a7f177975b776d227c6fad777f0/seam_erasure-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "3430de1090193269abea641519ac81d0", "sha256": "db9fca8a955c0056c02a934a6fec345d17b9b6820df7256ad29e91e7396d4417" }, "downloads": -1, "filename": "seam_erasure-1.0.4.tar.gz", "has_sig": false, "md5_digest": "3430de1090193269abea641519ac81d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 30649, "upload_time": "2019-10-17T23:12:13", "url": "https://files.pythonhosted.org/packages/08/0c/3bf95452be74e984be9b9d0dec6c43d979c0ce609651a2066436727af92e/seam_erasure-1.0.4.tar.gz" } ], "1.0.4a0": [ { "comment_text": "", "digests": { "md5": "226a6898a9d5d3b4502637b7dec7f25f", "sha256": "bb736d9331988c5b2057c36f648b84197c01bbe4ed72c6f496127fee067a1029" }, "downloads": -1, "filename": "seam_erasure-1.0.4a0.tar.gz", "has_sig": false, "md5_digest": "226a6898a9d5d3b4502637b7dec7f25f", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 30671, "upload_time": "2019-10-17T23:06:25", "url": "https://files.pythonhosted.org/packages/be/f8/41cf81a446bbf44ffaa016740a35c519a36bf0906de11ab1c6a7e53c9c32/seam_erasure-1.0.4a0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3430de1090193269abea641519ac81d0", "sha256": "db9fca8a955c0056c02a934a6fec345d17b9b6820df7256ad29e91e7396d4417" }, "downloads": -1, "filename": "seam_erasure-1.0.4.tar.gz", "has_sig": false, "md5_digest": "3430de1090193269abea641519ac81d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 30649, "upload_time": "2019-10-17T23:12:13", "url": "https://files.pythonhosted.org/packages/08/0c/3bf95452be74e984be9b9d0dec6c43d979c0ce609651a2066436727af92e/seam_erasure-1.0.4.tar.gz" } ] }