Recent Releases of trimesh
trimesh - Release 4.7.4
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.
- Python
Published by github-actions[bot] 6 months ago
trimesh - Release 4.7.3
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
|u8instead 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
- Python
Published by github-actions[bot] 7 months ago
trimesh - Release 4.7.1
Release: Scene Type Hints (#2427)
- adds a type hint to scene.show with a
Literalto fix #2426 - For some reason a reexport of
typing.Literalfromtrimesh.typeddoes not work with ruff.
- Python
Published by github-actions[bot] 7 months ago
trimesh - Release 4.7.0
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.gmshis deprecated and will be removed January 2025! There are many gmsh options on PyPi:scikit-gmshgmshpygmshgmsh-sdk, users should pick one of those and use it directly. If STEP loading is the only thing needed you may wantpip install cascadiowhich 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
- Python
Published by github-actions[bot] 8 months ago
trimesh - Release 4.6.13
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_extrudeandtest_primitivesto pytest style, and remove the outdated test skip iftriangleisn't installed. - fix and test units on 3MF imports, which were being stomped by the
metadata = Nonekeyword argument. - remove unused
trimesh.exchange.gltf._mesh_to_materialsfunction. - release #2420
- Python
Published by github-actions[bot] 8 months ago
trimesh - Release 4.6.12
Release: Docstrings + IMC (#2417)
- fix minimum Python version in readme
- release #2416
- release #2415
- Python
Published by github-actions[bot] 9 months ago
trimesh - Release 4.6.11
Release: Don't Copy Embree Scenes (#2411)
- try to fix #2410
- release #2409 which fixes #2408
- release #2404
- deprecate OpenCTM as it is abandoned, fully superseded by Google's Draco, and was causing maintenance burden for upstream packaging teams. Discussion in https://github.com/trimesh/openctm/issues/5
- Python
Published by github-actions[bot] 9 months ago
trimesh - Release 4.6.10
Release: More SVG Fixes (#2406)
- fix #2405 and test
- preserve OBJ material names through a roundtrip mentioned in #2349
- Python
Published by github-actions[bot] 9 months ago
trimesh - Release 4.6.9
Release: SVG Fixes (#2397)
- release #2395
- release #2401 which tests and fixes #2253
- add test and fix #2379
- test and fix #2402
- test and fix #2403
- both SVG cases are now tested by converting the SVG transform tree into a single fully evaluated path string in Inkscape and then confirming the set-of-AABB matches with our evaluation.
- add
identifier_hashto the abstract base classparent.Geometry - adds
trimesh.inertia.points_inertiato calculate the tensor of an array of point masses to use as a simple identifier for the PointCloud.points_inertiais also useful for approximating a moment of inertia from samples, which we test by sampling the volume of a random box. - adds a test that caught Path identifiers being only 2 values from an incorrect axis on a sum.
- Python
Published by github-actions[bot] 10 months ago
trimesh - Release 4.6.8
Release: Fix Typo (#2393)
- release #2392
- do another release with the PyPi trusted publisher now that everything is set up.
- Python
Published by github-actions[bot] 10 months ago
trimesh - Release 4.6.7
Release: Trusted Publisher (#2391)
- release #2387
- release #2389
- Python
Published by github-actions[bot] 10 months ago
trimesh - Release 4.6.6
hotfix: remove xatlas
- Python
Published by github-actions[bot] 11 months ago
trimesh - Release 4.6.5
Release: Box Normals (#2371)
- Face normals were being recomputed unnecessarily for
Boxprimitives. - release #2367
- update docker images to Python 3.13 as Debian trixie removed 3.12.
- Python
Published by github-actions[bot] 11 months ago
trimesh - Release 4.6.4
Release: SVG Shapes (#2363)
- support most of the basic shapes in SVG imports rather than just path strings. Unsupported are ellipses and rounded rectangles. Fixes #2361
- release #2362
- Python
Published by github-actions[bot] 12 months ago
trimesh - Release 4.6.3
Release: Remove Setuptools (#2360)
- remove setuptools from
trimesh[easy]as it was a legacy thing from before pyproject.toml to fix #2359 - remove default materials out of a visuals object init as it does unnecessary work when creating a lot of empty meshes/visuals.
- release #2356
- Python
Published by github-actions[bot] about 1 year ago
trimesh - Release 4.6.2
Release: Face normal fix (#2354)
- fixes
mesh.face_normalsfor (n, 2) vertices (to always be 3D +Z), rather than crashing - test and fix #2345
- release #2352
- release #2348
- release #2355
- Python
Published by github-actions[bot] about 1 year ago
trimesh - Release 4.6.1
Release: Kwarg Passthrough (#2347)
- Python
Published by github-actions[bot] about 1 year ago
trimesh - Release 4.6.0
Release: Refactor Load Types (#2241)
A very common source of annoyance and confusion is that trimesh.load
can return lots of different types depending on what type of file was
passed (i.e. #2239). This refactor changes the return types for the
loading functions to:
trimesh.load_scene -> Scene- This loads into a
Scene, the most general container which can hold any loadable type. Most people should probably use this to load geometry. trimesh.load_mesh -> Trimesh- Forces all mesh objects in a scene into a single
Trimeshobject. This potentially has to drop information and irreversibly concatenate multiple meshes. - The implementation of the concatenation logic is now in
Scene.to_meshrather than load. trimesh.load_path -> Path- This loads into either a
Path2DorPath3Dwhich both inherit fromPath trimesh.load -> Geometry- This was the original load entry point and is deprecated, but there
are no current plans to remove it. It has been modified into a thin
wrapper for
load_scenethat attempts to match the behavior of the previous loader for backwards compatibility. In my testing against the currentmainbranch it was returning the same types 99.8% of the time although there may be other subtle differences. trimesh.load(..., force='mesh')will emit a deprecation warning in favor ofload_meshtrimesh.load(..., force='scene')will emit a deprecation warning in favor ofload_scene
Additional changes:
- Removes Geometry.metadata['file_path'] in favor of
Geometry.source.file_path. Everything that inherits from Geometry
should now have a .source attribute which is a typed dataclass. This
was something of a struggle as file_path was populated into metadata
on load, but we also try to make sure metadata is preserved through
round-trips if at all possible. And so the load inserted different
keys into the metadata. Making it first-class information rather than a
loose key seems like an improvement, but users will have to replace
mesh.metadata["file_name"] with mesh.source.file_name.
- Moves all network fetching into WebResolver so it can be more easily
gated by allow_remote.
- Removes code for the following deprecations:
- January 2025 deprecation for trimesh.resources.get in favor of the
typed alternatives (get_json, get_bytes, etc).
- January 2025 deprecation for Scene.deduplicated in favor of a very
short list comprehension on Scene.duplicate_nodes
- March 2024 deprecation for trimesh.graph.smoothed in favor of
trimesh.graph.smooth_shaded.
- Adds the following new deprecations:
- January 2026 Path3D.to_planar -> Path3D.to_2D to be consistent
with Path2D.to_3D.
- Fixes #2335
- Fixes #2330
- Fixes #2239
- Releases #2313
- Releases #2327
- Releases #2336
- Releases #2339
- Python
Published by github-actions[bot] about 1 year ago
trimesh - Release 4.5.3
Merge pull request #2319 from mikedh/test/iteration
Release: Iteration Tests
- Python
Published by github-actions[bot] about 1 year ago
trimesh - Release 4.5.2
Merge pull request #2312 from mikedh/units/xaml
Release: Boolean Tests
- Python
Published by github-actions[bot] over 1 year ago
trimesh - Release 4.5.1
Merge pull request #2300 from mikedh/followup/3mf
Release Followup: Tuning 3MF loading
- Python
Published by github-actions[bot] over 1 year ago
trimesh - Release 4.5.0
Merge pull request #2290 from mikedh/release/revolve
Release: Revolve Caps
- Python
Published by github-actions[bot] over 1 year ago
trimesh - Release 4.4.9
Merge pull request #2278 from mikedh/fix/scene
Release: Scene Transform
- Python
Published by github-actions[bot] over 1 year ago
trimesh - Release 4.0.0.rc0
https://github.com/mikedh/trimesh/pull/2010
- Python
Published by github-actions[bot] over 2 years ago