-
Notifications
You must be signed in to change notification settings - Fork 582
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 2 #1557
Comments
Firstly, want to say thank you @mikedh for the simply amazing library! Incredibly impressive how much functionality trimesh contains. Just wanted to suggest, it'd be nice to see some of the functionality, particularly under proximity and collisions, leveraging primitives when possible rather than treating everything as arbitrary meshes. I've been using the primitive generation trimesh provides, but as far as I know, things like signed distance queries and collision queries are not taking advantage of the metadata associated with the primitive geometries. Please correct me if I'm wrong! I've written my own set of SDF queries for the primitives I'm working with right now (boxes, cylinders, spheres) and found the speedup for my use case considerable (just adapted the very comprehensive set of examples from the wonderful Inigo Quilez' site).
I imagine it should also be possible to support leveraging primitives also with collision queries as FCL already does have objects for common primitives... But perhaps it's simple enough for users like me just to add this functionality on an as-needed basis for themselves rather than offer full support. |
Dear @mikedh, trimesh is awesome, thank you! As an educator, my feature request would be for the community of trimesh users to have somewhere to discuss and publish other forms of documentation, we have a nice reference and a few examples, but we could have, according to Laing's chart I copy below, tutorials, how-to-guides, and explanations. Maybe turning on the discussions feature of the repo could be a way in that direction... We could build a gallery of user examples, tutorials & etc. |
Hi @mikedh Very impressed with this library, its fast and supports wide variety of exchange formats. I have been having a blast using it so far - thank you for your work here and keeping it under what looks like an active development. I wonder how you feel about the current state of mesh visual data representation, so far I am under impression that 'Trimesh' objects can only represent either a vertex color data via This presents a serious challenge, its common in real-time graphics to have both - this allows colors sampled from textures to be tinted, overlayed or modified by vertex color values further in a shader pipeline. It also common to encode variety of useful mesh data in both vertex color and texture coordinate buffers without the need for materials or textures. Whats your thoughts on this, and are you open to changes in this area, or perhaps I got the wrong impression here? |
@RealDanTheMan glad you've been happy with it!
Yeah the library started for my mechanical work and visual info was only used for debugging initially haha. Although it's evolved quite a bit since then! I agree that it really seems like I don't think this would necessarily even require a ton of API breakage as |
Hi Mike, thanks for this great library. I added 2 feature requests: adding 3D text generation, adding bevel/chamfer/filet support. I know these are not easy or necessarily applicable asks for Trimesh. But I hope you can consider them, thanks. |
Hi @mikedh, Are you still planning on writing a system paper as mentionned in #346 ? Trimesh is used by thousands of people now, I believe a software paper would add value to the library (visibility, DOI citation, research oriented usage). |
Hi @mikedh, It seems that the decision has been made to utilize pyvista's implementation of the fast simplification algorithm. However, this choice introduces additional dependencies, particularly on PyVista, as outlined in their requirements documentation. On the other hand, the package we're working on, pyfqmr, has been around for a while and shares the same foundational code (based on sp4cerat's C++ implementation). We prioritize minimal dependencies, relying solely on NumPy (and cython for compilation). While our implementation might be slightly slower, it exposes an additional algorithm, If there's interest, I would be glad to work on a PR to explore integrating this approach, which could provide similar functionality while keeping dependencies light. Looking forward to your thoughts. |
Hey @Kramer84, I think
That being said, I'm definitely open to multiple backends behind |
Thanks for the correction @mikedh, I should have double-checked that! The C++ code is identical, but we're currently focusing on exposing more functionality at the Python level. UV tracking is already present in the source, so it seems like a good fit for trimesh! And since |
Please consider creating a place for people to share materials related to how they use and teach trimesh. I work daily with a library that has trimesh intregrations (https://py5coding.org/integrations/trimesh.html) and I miss more examples to show my students. I'm talking about examples like this that are really hard to find:
|
PR's are always super welcome! This is a relatively small open source project and really benefits from the bugfixes, features, and other stuff the 100+ contributors have PR'd, so thanks!
The previous issue (#199) got pretty out of date and a lot of the stuff on it was done so here's a new thread. Feel free to suggest things!
embree4
stuff over the line to be mergedmikedh/embreex
fork now has wheels for Mac/Linux/Win Python 3.6-3.11mesh.slice_plane
Slicing a mesh and preserving the textured visuals #1920scene.save_image
always work. We get a ton of issues about this and the answer is always pretty much "sorry your graphics driver hates you," or "try the docker image." I guess it's just a hard problem that depends a lot on platform and I'm not sure there's any way to solve it from trimeshScene
. Maybe now that multi-material single meshes were PR'd in Merge primitive materials #1246 we could have OBJ always return aTrimesh
.trimesh.remesh.subdivide
subdivide_to_size
so that if you specify a subset of faces it splits their neighbors in a way to maintain watertightness.trimesh.path.Path
API. Specifically:path.polygons_closed
->path.linestrings
path.polygons_full
->path.polygons
path.path
andpath.discrete
.pyright trimesh
passpyright trimesh/graph.py
.The text was updated successfully, but these errors were encountered: