Skip to content

Releases: mikedh/trimesh

Release 4.9.0

22 Oct 17:42
76b6dd1

Choose a tag to compare

Release: Unit Hints (#2468)

  • Be more flexible in getting unit hints from file names since it was a
    little silly that 20mm-xyz-cube did not resolve as mm.
  • Apply actions
    guidance

    updating to use the macos-15-intel image.
  • test and fix trimesh.scene.lighting.autolight crashing on empty
    scenes by checking scene.bounds is None
  • release #2470
  • add a note about whether or not we should apply the fix from #2457 to
    PBRMaterial.to_simple using the same conversion function for the
    linear baseColorFactor to RGB, but don't actually apply the change as
    it seems likely to be a source of user confusion.
  • add a Path2D.convex_hull to match every other geometry method.
  • update test_scene.py to pytest style
  • release #2472
  • release #2473
  • Add in another Literal type for VoxelizationMethodsType rather
    than a "loose string".

Release 4.8.3

26 Sep 20:08
9d04496

Choose a tag to compare

Release: Partially update notebook viewer (#2465)

  • For the notebook viewer this updates the version of three.js from 115
    -> 140 and rebuilds the trimesh.resources.viewer.zip artifact. The
    latest version of three.js is 180 but would require re-factoring the
    notebook viewer which probably should be done at some point.
  • releases #2464
  • add literals types instead of loose strings for BooleanEngineType,
    BooleanOperationType, and GraphEngineType, and apply them to boolean
    and graph functions that allow different engine options.
  • pass through repair keyword argument from Trimesh.split to
    partially fix #2460
  • deprecate trimesh.viewer.widget since glooey hasn't been updated
    since 2021, and the widget module isn't tested.
  • stop running process=True on the outputs of manifold3d to fix #2466
  • adds additional test case to hit the iteration path of
    trimesh.path.polygons.sample_polygon
  • stop double-checking is_volume in mesh booleans to fix #2458
  • Adds additional documentation recommending "a la carte" dependencies
    for people freezing, i.e. trimesh scipy vs trimesh[easy]

Release 4.8.2

17 Sep 21:44
6bb01c5

Choose a tag to compare

Release: Docstrings + Docker UV (#2455)

  • update docstring for linear_color_map
  • release #2453
  • switch docker images to use uv to install Python, and add an alias
    for pip->uv pip so the images continue to behave similarly.
  • remove Trimesh.smoothed, which has been long-deprecated and
    scheduled for removal no earlier than March 2024.
    Trimesh.smooth_shaded has been recommended for the entire deprecation
    period via a warning.
  • fix #2456
  • this fixes a crash on a PLY with both edge data (i.e.
    trimesh.Path3D) and face data (Trimesh). We now load both into the
    kwargs, but the exchange entry point picks only the faces. It should
    probably be returning a Scene which has both the mesh and path.
  • release #2457
  • also refactor local functions lin2srgb/srgb2lin ->
    trimesh.visual.color.linear_to_srgb and add a round-trip test
  • in the docs build update all locked versions

Release 4.8.1

02 Sep 20:29
e6458a6

Choose a tag to compare

Release: ExceptionWrapper (#2451)

  • release #2450 to avoid storing the locals in ExceptionWrapper.

Release 4.8.0

01 Sep 19:48
2e071c5

Choose a tag to compare

Release: PathSample Fixes + Viridis (#2444)

  • try to fix #2438
  • release #2441
  • release #2449 which makes viridis the default color map in
    trimesh.visual.color.interpolate and enables linear interpolation with
    more than two values in trimesh.visual.color.linear_color_map. This
    adds a 20kb JSON copy of the lookup table for viridis rather than
    depending on matplotlib to avoid the 50mb of added dependencies. Fixes
    #2446
  • adds ability to gzip files in trimesh.resources.get_json. gzip
    won the decompress-speed benchmark by a fair bit on my machine compared
    to bz2 and lzma although it had worse compression.

Release 4.7.4

14 Aug 20:14
d8c75b5

Choose a tag to compare

Hotfix: Remove a warning (#2440)

GLTF files with a node named "world" were warning, which is not
necessary. This changes the warning to a debug.

Release 4.7.3

11 Aug 17:26
f5c6c8b

Choose a tag to compare

Release: Parent Loggers + Numpy Dtype Hotfix (#2430)

In trimesh.util.attach_to_log(only_parent=True) if there exist loggers
for project, project.other, project.other2, this will only attach
to project. By default it is off so it shouldn't change upstream
behavior.

We should also probably be doing instead of from .util import log,
log = getLogger(__name__) everywhere.

Release Notes

  • Adds the parent logging behavior
  • latest numpy dtypes now show up as |u8 instead of <u8, which we
    need to strip for the GLTF lookup table.
  • slightly janky fix for #2419 which at least preserves the vertex
    colors, but should probably be refactored to always store them in
    vertex_attributes. That would be a large change and I'm not sure it's
    possible to do without breaking the API.
  • release #2432

Release 4.7.1

16 Jul 20:25
e2176e3

Choose a tag to compare

Release: Scene Type Hints (#2427)

  • adds a type hint to scene.show with a Literal to fix #2426
  • For some reason a reexport of typing.Literal from trimesh.typed
    does not work with ruff.

Release 4.7.0

09 Jul 19:01
a2467b2

Choose a tag to compare

Release: Remove GMSH (#2422)

Trimesh's interface to gmsh has been scheduled for removal and has been
printing this warning for more than a year:

trimesh.interfaces.gmsh is deprecated and will be removed January
2025! There are many gmsh options on PyPi: scikit-gmsh gmsh
pygmsh gmsh-sdk, users should pick one of those and use it directly.
If STEP loading is the only thing needed you may want pip install cascadio which uses OpenCASCADE more directly and will immediately
enable STEP as a loadable format in trimesh.

Changes in this release:

  • remove trimesh.interfaces.gmsh
  • release #2423
  • release #2424
  • fix pycollada dependency on Python 3.8

Release 4.6.13

27 Jun 18:34
8e9db3d

Choose a tag to compare

Release: Layer Filter For Path.copy (#2418)

  • add and test path.copy(layers={1, 2}) to only copy particular
    layers.
  • add the note about signed angles discussed in #2416
  • add a trimesh.primitives.Extrusion(..., mid_plane: bool) option as a
    helper to produce extrusions that are centered at the origin.
  • convert test_extrude and test_primitives to pytest style, and
    remove the outdated test skip if triangle isn't installed.
  • fix and test units on 3MF imports, which were being stomped by the
    metadata = None keyword argument.
  • remove unused trimesh.exchange.gltf._mesh_to_materials function.
  • release #2420