Spaces:
Build error
Build error
[]( | |
https://atlas.is.localnet/bamboo/browse/PS-FMP/latest) | |
Perceiving Systems Mesh Package | |
=============================== | |
This package contains core functions for manipulating meshes and | |
visualizing them. It requires ``Python 3.5+`` and is supported on | |
Linux and macOS operating systems. | |
The ``Mesh`` processing libraries support several of our projects such as | |
* [CoMA: Convolutional Mesh Encoders for Generating 3D Faces](http://coma.is.tue.mpg.de/) | |
* [FLAME: Learning a model of facial shape and expression from 4D scans](http://flame.is.tue.mpg.de/) | |
* [MANO: Modeling and Capturing Hands and Bodies Together](http://mano.is.tue.mpg.de/) | |
* [SMPL: A Skinned Multi-Person Linear Model](http://smpl.is.tue.mpg.de/) | |
* [VOCA: Voice Operated Character Animation](https://github.com/TimoBolkart/voca) | |
* [RingNet: 3D Face Shape and Expression Reconstruction from an Image](https://github.com/soubhiksanyal/RingNet) | |
* [Expressive Body Capture: 3D Hands, Face, and Body from a Single Image](https://smpl-x.is.tue.mpg.de/) | |
Requirements | |
------------ | |
You first need to install the `Boost <http://www.boost.org>`_ | |
libraries. You can compile your own local version or simply do on | |
Linux | |
``` | |
$ sudo apt-get install libboost-dev | |
``` | |
or on macOS | |
``` | |
$ brew install boost | |
``` | |
Installation | |
------------ | |
First, create a dedicated Python virtual environment and activate it: | |
``` | |
$ python3 -m venv --copies my_venv | |
$ source my_venv/bin/activate | |
``` | |
You should then compile and install the ``psbody-mesh`` package easily | |
using the Makefile: | |
``` | |
$ BOOST_INCLUDE_DIRS=/path/to/boost/include make all | |
``` | |
Testing | |
------- | |
To run the tests, simply do: | |
``` | |
$ make tests | |
``` | |
Documentation | |
------------- | |
A detailed documentation can be compiled using the Makefile: | |
``` | |
$ make documentation | |
``` | |
Viewing the Meshes | |
------------------ | |
Starting from version 0.4 meshviewer ships with `meshviewer` -- a | |
program that allows you to display polygonal meshes produced by `mesh` | |
package. | |
### Viewing a mesh on a local machine | |
The most straightforward use-case is viewing the mesh on the same | |
machine where it is stored. To do this simply run | |
``` | |
$ meshviewer view sphere.obj | |
``` | |
This will create an interactive window with your mesh rendering. You | |
can render more than one mesh in the same window by passing several | |
paths to `view` command | |
``` | |
$ meshviewer view sphere.obj cylinder.obj | |
``` | |
This will arrange the subplots horizontally in a row. If you want a | |
grid arrangement, you can specify the grid parameters explicitly | |
``` | |
$ meshviewer view -nx 2 -ny 2 *.obj | |
``` | |
### Viewing a mesh from a remote machine | |
It is also possible to view a mesh stored on a remote machine. To do | |
this you need mesh to be installed on both the local and the remote | |
machines. You start by opening an empty viewer window listening on a | |
network port | |
``` | |
(local) $ meshviewer open --port 3000 | |
``` | |
To stream a shape to this viewer you have to either pick a port that | |
is visible from the remote machine or by manually exposing the port | |
when connecting. For example, through SSH port forwarding | |
``` | |
(local) $ ssh -R 3000:127.0.0.1:3000 user@host | |
``` | |
Then on a remote machine you use `view` command pointing to the | |
locally forwarded port | |
``` | |
(remote) $ meshviewer view -p 3000 sphere.obj | |
``` | |
This should display the remote mesh on your local viewer. In case it | |
does not it might be caused by the network connection being closed | |
before the mesh could be sent. To work around this one can try | |
increasing the timeout up to 1 second | |
``` | |
(remote) $ meshviewer view -p 3000 --timeout 1 sphere.obj | |
``` | |
To take a snapshot you should locally run a `snap` command | |
``` | |
(local) $ meshviewer snap -p 3000 sphere.png | |
``` | |
License | |
------- | |
Please refer for LICENSE.txt for using this software. The software is | |
compiled using CGAL sources following the license in CGAL_LICENSE.pdf | |
Acknowledgments | |
--------------- | |
We thank the external contribution from the following people: | |
* [Kenneth Chaney](https://github.com/k-chaney) ([PR #5](https://github.com/MPI-IS/mesh/pull/5)) | |
* [Dávid Komorowicz](https://github.com/Dawars) ([PR #8](https://github.com/MPI-IS/mesh/pull/8)) | |