Skip to content

Releases: mikedh/trimesh

Release 4.12.2

01 May 00:57
c2f5a3b

Choose a tag to compare

What's Changed

Full Changelog: 4.12.1...4.12.2

Release 4.12.1

24 Apr 20:59
89a7d38

Choose a tag to compare

What's Changed

Full Changelog: 4.12.0...4.12.1

Release 4.12.0

23 Apr 23:44
d3f2f96

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 4.11.5...4.12.0

Release 4.11.5

25 Mar 01:08
858b5c0

Choose a tag to compare

Release: Fix fill_holes with face attributes (#2518)

Trimesh.fill_holes was adding new faces but haphazardly managing the
bookkeeping: it broke len(mesh.faces) == len(mesh.face_attributes[n])
if there were any holes filled.

  • add Trimesh.extend_faces which moves the bookkeeping of "preserve
    cached face normals to avoid recalculating, pad face colors, pad face
    attributes" to a generic mesh attribute in the same vein as
    mesh.update_faces.
  • refactor the tesselation of the holes in repair.fill_holes to use
    triangulate_quads which implemented the hole filling logic but better.
    Switch the winding search to a numpy indexing trick for new faces.
  • Have geometry.triangulate_quads use the preexisting
    util.triangle_fan_to_faces which uses numpy instead of a list
    comprehension and is heavily used and tested in the codebase.

Also:

  • try to test and fix #2516

Release 4.11.4

18 Mar 22:59
c8b2216

Choose a tag to compare

Release: Simple endian tests (#2512)

Even if we can't fully support other endian platforms, imports and
exports should explicitly set endian-ness of outputs.

  • Adds a make test-arch which runs a subset of test on qemu/docker to
    catch simple problems on little-endian and 32bit platforms
  • Adds fix from #2506 which implemented Line.closed setter to
    auto-close polylines when passed.
  • Audit use of np.einsum/np.dot from good discussion in #2514. My
    conclusion was that numpy.dot is probably not the culprit and too core
    to avoid. As part of looking into this I benchmarked our other uses of
    np.einsum against simple numpy operations, it was on average ~2x
    slower. I also tried the `np.einsum(... optimize=True) as discussed in
    this interesting
    post

    but for the trimesh use cases of very simple expressions this was
    substantially slower in every case I measured.

Release 4.11.3

06 Mar 01:16
5688bae

Choose a tag to compare

Release: Fix For Open Paths (#2507)

  • release #2505
  • switch while loop to bounded for loop in the traversals logic

Release 4.11.2

10 Feb 16:00
74cef39

Choose a tag to compare

Hotfix for new ruff release (#2503)

Fix for new ruff rule in 0.15.0 blocking release.

Release 4.11.1

17 Jan 16:38
934ea6c

Choose a tag to compare

Release: Fix WebP Export (#2499)

Release 4.11.0

07 Jan 19:52
6b72bf7

Choose a tag to compare

Release: Extensions (#2497)

  • capture STDERR to fix #2495
  • release #2492
  • release #2493
  • moves trimesh/exchange/gltf.py to
    trimesh/exchange/gltf/__init__.py which is identical for import users,
    but lets us add the additional extensions.py next to it.

Release 4.10.1

07 Dec 00:39
d7c9985

Choose a tag to compare

Release: Projected Precise Mode (#2491)

  • release #2490 as discussed in #2488 doing minor cleanup below the
    precision threshold before unioning every triangle in projected(... precise=True)
  • release #2487 cleaning up the logic in
    trimesh.grouping.group_distance to be more coherent.