GithubHelp home page GithubHelp logo

lace / entente Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 3.0 317 KB

Polygonal meshes in vertex-wise correspondence

Home Page: https://entente.readthedocs.io/en/latest/

License: MIT License

Python 99.63% Shell 0.37%
mesh polygonal-meshes 3d correspondence

entente's Introduction

lace

version python versions version

Polygonal mesh library developed at Body Labs.

This library is deprecated. The primary successor is lacecore:

  • Provides polygonal meshes optimized for cloud computation.
  • Supports triangles and quads.
  • Provides OBJ loading via the obj extra.

Several other mesh-related libraries were broken out from this package and blmath:

  • polliwog provides low-level functions for working with triangles, optimized for cloud computation.
  • entente provides functions for working with meshes having vertexwise correspondence.
  • proximity provides proximity queries.
  • hobart obtains planar cross sections.
  • tri-again provides simple 3D scenegraphs for debugging meshes, polylines, and points.
  • meshlab-pickedpoints loads and saves MeshLab picked point (.pp) files.

For batteries-included prototyping, Trimesh is recommended as an alternative.

Installation

Install dependencies

Mac OS:

brew update && brew install boost
pip install numpy==1.13.1
pip install lace

Linux:

apt-get install -y --no-install-recommends libsuitesparse-dev libboost-dev
pip install numpy==1.13.1
pip install lace

Docker:

docker build .

Install the library

pip install lace

Development

pip install -r requirements_dev.txt
pip install -e .
rake test
rake lint

Acknowledgements

This library was refactored from legacy code at Body Labs by Alex Weiss, with portions by Eric Rachlin, Paul Melnikow, Victor Alvarez, and others. It was extracted from the Body Labs codebase and open-sourced by Guillaume Marceau. In 2018 it was forked by Paul Melnikow and published as metabolace. Thanks to a repository and package transfer from Body Labs, the fork has been merged back into the original.

License

The project is licensed under the two-clause BSD license.

This project uses the RPly library to read and write PLY files, by Diego Nehab, IMPA, distributed under the MIT License.

entente's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar jlevin avatar lgtm-com[bot] avatar paulmelnikow avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

entente's Issues

Fill in missing docs for symmetrize landmarks functions

  • entente.landmarks.symmetrize_landmarks.symmetrize_landmarks_using_plane(plane_of_symmetry, landmark_coords)
  • entente.landmarks.symmetrize_landmarks.symmetrize_landmarks_using_topology(mesh, plane_of_symmetry, landmark_coords, atol=0.0001)

Clarify intent of flaky test for test_rigid_rotation

See test_rigid_rotation_with_reflection() in test_rigid_transform.py

This test produces different answers on numpy 1.19.3 and higher on certain architectures. This is because there are duplicate singular values.

Since a reflection through the origin in 3-space is not a rotation at all, and there is no rotation matrix which can reflect through the origin, it's not clear what the correct result should be.

See also numpy/numpy#22945

Runtime information:

NumPy 1.19.3
Python 3.9.13 (main, May 27 2022, 22:45:39)
[GCC 9.4.0]

Note: This behavior is also occurring with numpy 1.24.1
Context for the issue:

The behavior is observed in CircleCI with the following info:
Docker with Python using cimg/python:3.9.13
Model name: Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz

Not reproducible on MacOS or Linux native.
Not reproducible on MacOS or Linux with same Docker image.
Not reproducible in Numpy 1.19.2.

Re-run pip install in CI

The docker image includes dependencies from requirements, but it's possible for the image to be out of date w.r.t those files. It would be better to use the cached dependencies, but to re-run pip install and pip freeze in CI to make sure that the installed versions match the versions requested.

Add mypy types

This library is in sore need of types, both for convenience of the consumer and for the developer to make sense of all the data structures being passed around.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.