Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement Ideas #199

Open
mikedh opened this Issue Jul 31, 2018 · 6 comments

Comments

Projects
None yet
4 participants
@mikedh
Copy link
Owner

mikedh commented Jul 31, 2018

I was pinged recently looking for some projects to help out with, here are some ideas. PR's are always appreciated!

  • (docs) Figure out how to get the examples embedded in the actual docs webpage. Right now when you build docs, example ipynb files are rendered to HTML which is just linked to from the examples page. It would be really nice if each example was embedded in sphinx somehow, and kept the sidebar on the left so one could navigate around between examples and back to the docs.

  • (docs) It would be great if the sidebar on the left in docs linked back to the github page. I couldn't figure out how to add a simple link on the sidebar using Sphinx.

  • (docs) Do a comparison on various comparable operations on trimesh vs pymesh (loading a big file in various formats, taking a cross section, calculating volume, etc). It would be neat to see the different API calls and relative performance (using timeit.repeat preferably). Both libraries have pre- built docker images on Docker Hub so that would probably be the easiest way to do this.

  • (feature) Mesh simplification, either through creating a meshlabserver interface or through implementing a vectorized numpy version of quadratic edge collapse: #41

  • (feature) Tetrahedral meshing, as requested in #228

  • (feature) MSH support, as requested in #206. Possibly via meshio if they address nschloe/meshio#305

  • (feature) More 3MF tests. Trimesh has a 3MF importer, it would be great to put together a test corpus of various small- ish models (specifically interesting would be multibody assemblies with duplication) from various exporters.

  • (feature) More GLTF/GLB tests and support. Test the trimesh implementation against more samples of the format, and fix any issues that arise.

  • (feature) Reliable STEP, IGES, and/or IFC tesselation and import. I fooled around with various openCASCADE based options for this and they were all somewhat to extremely unreliable:
    http://ifcopenshell.org/
    https://github.com/mikedh/occmodel
    http://www.pythonocc.org/ (quite a heavy dependency that I would like to avoid)

  • (infrastructure) PR'ing into upstream built packages to support both wheel (including shared libraries!) on PiPi and conda-forge (cibuildwheel, etc) for easier installs: https://github.com/geometries/trimesh_upstream

@Marviel

This comment has been minimized.

Copy link
Contributor

Marviel commented Aug 10, 2018

@mikedh awesome list, we'd all love to see some of these changes, stoked to know you're considering things like built-in mesh simplification, etc.

A convention I've seen in some other repos is to have each task listed as their own github issue, and give them an easy medium hard label applied to them, based on the perceived difficulty.

Also allows us to start threaded conversations on each of the tasks in your list.

Anyhow just a thought! Not sure the extent to which we want to use Issues here :)

@mikedh

This comment has been minimized.

Copy link
Owner Author

mikedh commented Aug 13, 2018

Yeah it would be great to get some of this stuff! In the interest of avoiding a ton of immediately orphaned new issues the process I'd suggest initially would be:

  1. I'll update this list in- place with new ideas.
  2. If someone is interested in working on one of the ideas, they can open a new issue looking for advice before PR'ing.

@mikedh mikedh added the enhancement label Aug 18, 2018

@mmatl

This comment has been minimized.

Copy link
Contributor

mmatl commented Sep 10, 2018

@mikedh I'm going to try to tackle textures. Let me know if you have any thoughts -- I was also thinking a new TextureVisuals object. Loading the texture file itself will probably requireimageio -- are you okay with introducing that dep? It's really lightweight.

@mikedh

This comment has been minimized.

Copy link
Owner Author

mikedh commented Sep 12, 2018

Sounds good, discussion for texture in #218

@LinJiarui

This comment has been minimized.

Copy link
Contributor

LinJiarui commented Sep 14, 2018

@mikedh Hey mike, it's great to see that you mentioned IFC, which I'm quite familiar with. I also used IfcOpenShell to get geometries from IFC file and then voxelize them with trimesh. That's why I found trimesh and created two PRs :) So, maybe I can help in IFC importing.

@mikedh

This comment has been minimized.

Copy link
Owner Author

mikedh commented Sep 18, 2018

Hey @LinJiarui that would be great! I took a look at ifcopenshell-python briefly, and it looks like the biggest stumbling block would be packaging. As per IfcOpenShell/IfcOpenShell#146, you can't install it via pip, and it would be preferable to address that before adding it as a dependency.

CIbuildwheel might be a good solution, but is definitely a lot of work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.