pymomentum-cpu 0.1.82.post0__cp313-cp313-macosx_14_0_arm64.whl → 0.1.83.post0__cp313-cp313-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pymomentum-cpu might be problematic. Click here for more details.

Files changed (86) hide show
  1. include/axel/DualContouring.h +1 -1
  2. include/axel/MeshToSdf.h +10 -10
  3. include/axel/SimdKdTree.h +19 -19
  4. include/axel/math/CoplanarityCheck.h +4 -4
  5. include/axel/math/MeshHoleFilling.h +9 -9
  6. include/momentum/character/blend_shape.h +4 -4
  7. include/momentum/character/blend_shape_base.h +1 -1
  8. include/momentum/character/character_utility.h +1 -1
  9. include/momentum/character/linear_skinning.h +2 -2
  10. include/momentum/character/parameter_transform.h +2 -2
  11. include/momentum/character_sequence_solver/model_parameters_sequence_error_function.h +9 -9
  12. include/momentum/character_sequence_solver/multipose_solver_function.h +1 -1
  13. include/momentum/character_sequence_solver/sequence_error_function.h +9 -9
  14. include/momentum/character_sequence_solver/sequence_solver_function.h +1 -1
  15. include/momentum/character_sequence_solver/state_sequence_error_function.h +9 -9
  16. include/momentum/character_sequence_solver/vertex_sequence_error_function.h +14 -14
  17. include/momentum/character_solver/constraint_error_function.h +2 -2
  18. include/momentum/character_solver/pose_prior_error_function.h +1 -1
  19. include/momentum/character_solver/skeleton_solver_function.h +2 -2
  20. include/momentum/gui/rerun/logger.h +6 -6
  21. include/momentum/io/character_io.h +3 -3
  22. include/momentum/io/common/gsl_utils.h +2 -2
  23. include/momentum/io/common/stream_utils.h +4 -4
  24. include/momentum/io/fbx/fbx_io.h +59 -12
  25. include/momentum/io/fbx/fbx_memory_stream.h +3 -3
  26. include/momentum/io/fbx/openfbx_loader.h +10 -3
  27. include/momentum/io/fbx/polygon_data.h +3 -3
  28. include/momentum/io/gltf/gltf_builder.h +2 -2
  29. include/momentum/io/gltf/gltf_io.h +6 -6
  30. include/momentum/io/gltf/utils/accessor_utils.h +6 -6
  31. include/momentum/io/legacy_json/legacy_json_io.h +2 -2
  32. include/momentum/io/marker/marker_io.h +1 -1
  33. include/momentum/io/motion/mmo_io.h +7 -7
  34. include/momentum/io/skeleton/locator_io.h +2 -2
  35. include/momentum/io/skeleton/mppca_io.h +2 -2
  36. include/momentum/io/skeleton/parameter_transform_io.h +3 -3
  37. include/momentum/io/urdf/urdf_io.h +3 -3
  38. include/momentum/io/usd/usd_io.h +2 -2
  39. include/momentum/marker_tracking/app_utils.h +1 -1
  40. include/momentum/marker_tracking/marker_tracker.h +8 -8
  41. include/momentum/marker_tracking/tracker_utils.h +2 -2
  42. include/momentum/math/mppca.h +1 -1
  43. include/momentum/math/online_householder_qr.h +5 -5
  44. include/momentum/math/transform.h +2 -2
  45. include/momentum/math/types.h +10 -10
  46. include/momentum/math/utility.h +2 -2
  47. include/momentum/rasterizer/rasterizer.h +24 -24
  48. lib/cmake/axel/axelTargets.cmake +1 -1
  49. lib/libarrow.a +0 -0
  50. lib/libarrow_bundled_dependencies.a +0 -0
  51. lib/libaxel.a +0 -0
  52. lib/libmomentum_app_utils.a +0 -0
  53. lib/libmomentum_character.a +0 -0
  54. lib/libmomentum_character_sequence_solver.a +0 -0
  55. lib/libmomentum_character_solver.a +0 -0
  56. lib/libmomentum_common.a +0 -0
  57. lib/libmomentum_diff_ik.a +0 -0
  58. lib/libmomentum_io.a +0 -0
  59. lib/libmomentum_io_common.a +0 -0
  60. lib/libmomentum_io_fbx.a +0 -0
  61. lib/libmomentum_io_gltf.a +0 -0
  62. lib/libmomentum_io_legacy_json.a +0 -0
  63. lib/libmomentum_io_marker.a +0 -0
  64. lib/libmomentum_io_motion.a +0 -0
  65. lib/libmomentum_io_shape.a +0 -0
  66. lib/libmomentum_io_skeleton.a +0 -0
  67. lib/libmomentum_io_urdf.a +0 -0
  68. lib/libmomentum_marker_tracker.a +0 -0
  69. lib/libmomentum_math.a +0 -0
  70. lib/libmomentum_online_qr.a +0 -0
  71. lib/libmomentum_process_markers.a +0 -0
  72. lib/libmomentum_rerun.a +0 -0
  73. lib/libmomentum_simd_constraints.a +0 -0
  74. lib/libmomentum_simd_generalized_loss.a +0 -0
  75. lib/libmomentum_skeleton.a +0 -0
  76. lib/libmomentum_solver.a +0 -0
  77. lib/librerun_sdk.a +0 -0
  78. pymomentum/axel.cpython-313-darwin.so +0 -0
  79. pymomentum/geometry.cpython-313-darwin.so +0 -0
  80. pymomentum/marker_tracking.cpython-313-darwin.so +0 -0
  81. pymomentum/solver.cpython-313-darwin.so +0 -0
  82. pymomentum/solver2.cpython-313-darwin.so +0 -0
  83. {pymomentum_cpu-0.1.82.post0.dist-info → pymomentum_cpu-0.1.83.post0.dist-info}/METADATA +6 -4
  84. {pymomentum_cpu-0.1.82.post0.dist-info → pymomentum_cpu-0.1.83.post0.dist-info}/RECORD +86 -86
  85. {pymomentum_cpu-0.1.82.post0.dist-info → pymomentum_cpu-0.1.83.post0.dist-info}/WHEEL +0 -0
  86. {pymomentum_cpu-0.1.82.post0.dist-info → pymomentum_cpu-0.1.83.post0.dist-info}/licenses/LICENSE +0 -0
@@ -10,14 +10,14 @@
10
10
  #include <momentum/common/checks.h>
11
11
 
12
12
  #include <Eigen/Core>
13
- #include <gsl/span>
13
+ #include <span>
14
14
 
15
15
  #include <deque>
16
16
  #include <vector>
17
17
 
18
18
  namespace momentum {
19
19
 
20
- void validateColumnIndices(gsl::span<const Eigen::Index> colIndices, Eigen::Index maxEntry);
20
+ void validateColumnIndices(std::span<const Eigen::Index> colIndices, Eigen::Index maxEntry);
21
21
 
22
22
  // Remaps the matrix such that A_new.col(i) = A_orig.col(colIndices[i]).
23
23
  // This can be used to perform QR on a subset of the matrix columns.
@@ -28,7 +28,7 @@ class ColumnIndexedMatrix {
28
28
 
29
29
  explicit ColumnIndexedMatrix(Eigen::Ref<MatrixType> mat) : mat_(mat), useColumnIndices_(false) {}
30
30
 
31
- explicit ColumnIndexedMatrix(Eigen::Ref<MatrixType> mat, gsl::span<const Eigen::Index> colIndices)
31
+ explicit ColumnIndexedMatrix(Eigen::Ref<MatrixType> mat, std::span<const Eigen::Index> colIndices)
32
32
  : mat_(mat), columnIndices_(colIndices), useColumnIndices_(true) {
33
33
  validateColumnIndices(colIndices, mat.cols());
34
34
  }
@@ -53,7 +53,7 @@ class ColumnIndexedMatrix {
53
53
  }
54
54
  }
55
55
 
56
- [[nodiscard]] gsl::span<const Eigen::Index> columnIndices() const {
56
+ [[nodiscard]] std::span<const Eigen::Index> columnIndices() const {
57
57
  return columnIndices_;
58
58
  }
59
59
 
@@ -71,7 +71,7 @@ class ColumnIndexedMatrix {
71
71
 
72
72
  private:
73
73
  Eigen::Ref<MatrixType> mat_;
74
- gsl::span<const Eigen::Index> columnIndices_;
74
+ std::span<const Eigen::Index> columnIndices_;
75
75
  bool useColumnIndices_;
76
76
  };
77
77
 
@@ -216,8 +216,8 @@ using TransformListT =
216
216
 
217
217
  template <typename T>
218
218
  TransformT<T> blendTransforms(
219
- gsl::span<const TransformT<T>> transforms,
220
- gsl::span<const T> weights);
219
+ std::span<const TransformT<T>> transforms,
220
+ std::span<const T> weights);
221
221
 
222
222
  /// Spherical linear interpolation between two transforms
223
223
  template <typename T>
@@ -26,7 +26,7 @@
26
26
  #pragma warning(pop)
27
27
  #endif
28
28
 
29
- #include <gsl/gsl>
29
+ #include <span>
30
30
 
31
31
  //------------------------------------------------------------------------------
32
32
  // Define some additional Eigen types
@@ -401,29 +401,29 @@ using ColorArray = Matrix3Xb;
401
401
  constexpr size_t kMaxModelParams = 2048; // at most 2048 parameters per frame
402
402
  using ParameterSet = std::bitset<kMaxModelParams>;
403
403
 
404
- /// @brief A utility struct that facilitates the deduction of a `gsl::span` type from a given type.
404
+ /// @brief A utility struct that facilitates the deduction of a `std::span` type from a given type.
405
405
  ///
406
- /// This utility is particularly useful when a function accepts a `gsl::span<Vector3<T>>` as an
407
- /// argument, where the template argument of `gsl::span` is also a template. In such cases, direct
408
- /// deduction of the `gsl::span` type from other container types (e.g., `std::vector<Vector3<T>>`)
406
+ /// This utility is particularly useful when a function accepts a `std::span<Vector3<T>>` as an
407
+ /// argument, where the template argument of `std::span` is also a template. In such cases, direct
408
+ /// deduction of the `std::span` type from other container types (e.g., `std::vector<Vector3<T>>`)
409
409
  /// at the call site may fail.
410
410
  ///
411
- /// By using this utility, the appropriate `gsl::span` type can be deduced automatically, ensuring
411
+ /// By using this utility, the appropriate `std::span` type can be deduced automatically, ensuring
412
412
  /// smoother function calls and enhancing code readability.
413
413
  ///
414
414
  /// Example usage:
415
415
  /// @code
416
- /// void foo(DeduceSpanType<Vector3f>::type points); // Equivalent to gsl::span<Vector3f>
416
+ /// void foo(DeduceSpanType<Vector3f>::type points); // Equivalent to std::span<Vector3f>
417
417
  ///
418
418
  /// std::vector<Vector3f> points;
419
419
  /// foo(points); // This line will compile without any issues.
420
420
  /// @endcode
421
421
  ///
422
- /// @note The `gsl::span` generated by this utility gives a mutable view into the sequence. If an
423
- /// immutable view is needed, consider using `gsl::span<const T>` instead.
422
+ /// @note The `std::span` generated by this utility gives a mutable view into the sequence. If an
423
+ /// immutable view is needed, consider using `std::span<const T>` instead.
424
424
  template <typename T>
425
425
  struct DeduceSpanType {
426
- using type = gsl::span<T>;
426
+ using type = std::span<T>;
427
427
  };
428
428
 
429
429
  /// Casts the scalar type of objects in a container that support the `cast<>()` method.
@@ -208,8 +208,8 @@ Vector3<T> quaternionToEuler(const Quaternion<T>& q);
208
208
  /// @param w Optional weights for each quaternion (defaults to equal weights)
209
209
  /// @return The average quaternion
210
210
  Quaternionf quaternionAverage(
211
- gsl::span<const Quaternionf> q,
212
- gsl::span<const float> w = std::vector<float>());
211
+ std::span<const Quaternionf> q,
212
+ std::span<const float> w = std::vector<float>());
213
213
 
214
214
  /// Returns the closest points on two line segments where the line segments are represented in
215
215
  /// origin and direction
@@ -15,8 +15,8 @@
15
15
  #include <momentum/rasterizer/geometry.h>
16
16
  #include <momentum/rasterizer/tensor.h>
17
17
  #include <Eigen/Geometry>
18
- #include <gsl/span>
19
18
  #include <optional>
19
+ #include <span>
20
20
 
21
21
  namespace momentum::rasterizer {
22
22
 
@@ -227,7 +227,7 @@ void rasterizeMesh(
227
227
  /// depthOffset Depth offset for layered rendering @param imageOffset Pixel offset for comparative
228
228
  /// rendering
229
229
  void rasterizeLines(
230
- gsl::span<const Eigen::Vector3f> positions_world,
230
+ std::span<const Eigen::Vector3f> positions_world,
231
231
  const Camera& camera,
232
232
  const Eigen::Matrix4f& modelMatrix,
233
233
  float nearClip,
@@ -240,7 +240,7 @@ void rasterizeLines(
240
240
 
241
241
  /// Rasterize 3D line segments (flat array version)
242
242
  ///
243
- /// @see rasterizeLines(gsl::span<const Eigen::Vector3f>&, const Camera&, const Eigen::Matrix4f&,
243
+ /// @see rasterizeLines(std::span<const Eigen::Vector3f>&, const Camera&, const Eigen::Matrix4f&,
244
244
  /// float, const Eigen::Vector3f&, float, Span2f, Span3f, float, const Eigen::Vector2f&)
245
245
  ///
246
246
  /// @param positions_world Flat array of 3D positions (x1,y1,z1,x2,y2,z2,...)
@@ -276,7 +276,7 @@ void rasterizeLines(
276
276
  /// @param depthOffset Depth offset for layered rendering
277
277
  /// @param imageOffset Pixel offset for comparative rendering
278
278
  void rasterizeCircles(
279
- gsl::span<const Eigen::Vector3f> positions_world,
279
+ std::span<const Eigen::Vector3f> positions_world,
280
280
  const Camera& camera,
281
281
  const Eigen::Matrix4f& modelMatrix,
282
282
  float nearClip,
@@ -291,7 +291,7 @@ void rasterizeCircles(
291
291
 
292
292
  /// Rasterize 3D circles (flat array version)
293
293
  ///
294
- /// @see rasterizeCircles(gsl::span<const Eigen::Vector3f>, const Camera&, const Eigen::Matrix4f&,
294
+ /// @see rasterizeCircles(std::span<const Eigen::Vector3f>, const Camera&, const Eigen::Matrix4f&,
295
295
  /// float, const std::optional<Eigen::Vector3f>&, const std::optional<Eigen::Vector3f>&, float,
296
296
  /// float, Span2f, Span3f, float, const Eigen::Vector2f&)
297
297
  ///
@@ -322,11 +322,11 @@ void rasterizeCircles(
322
322
  /// @param normals_world Vector of 3D vertex normals in world space
323
323
  /// @param triangles Vector of triangles with uint32 indices
324
324
  void rasterizeMesh(
325
- gsl::span<const Eigen::Vector3f> positions_world,
326
- gsl::span<const Eigen::Vector3f> normals_world,
327
- gsl::span<const Eigen::Matrix<uint32_t, 3, 1>> triangles,
328
- gsl::span<const Eigen::Vector2f> textureCoords,
329
- gsl::span<const Eigen::Matrix<uint32_t, 3, 1>> textureTriangles,
325
+ std::span<const Eigen::Vector3f> positions_world,
326
+ std::span<const Eigen::Vector3f> normals_world,
327
+ std::span<const Eigen::Matrix<uint32_t, 3, 1>> triangles,
328
+ std::span<const Eigen::Vector2f> textureCoords,
329
+ std::span<const Eigen::Matrix<uint32_t, 3, 1>> textureTriangles,
330
330
  const Eigen::Ref<const Eigen::VectorXf>& perVertexDiffuseColor,
331
331
  const Camera& camera,
332
332
  const Eigen::Matrix4f& modelMatrix,
@@ -379,11 +379,11 @@ void rasterizeMesh(
379
379
  /// @param normals_world Vector of 3D vertex normals in world space
380
380
  /// @param triangles Vector of triangles with int32 indices
381
381
  void rasterizeMesh(
382
- gsl::span<const Eigen::Vector3f> positions_world,
383
- gsl::span<const Eigen::Vector3f> normals_world,
384
- gsl::span<const Eigen::Vector3i> triangles,
385
- gsl::span<const Eigen::Vector2f> textureCoords,
386
- gsl::span<const Eigen::Vector3i> textureTriangles,
382
+ std::span<const Eigen::Vector3f> positions_world,
383
+ std::span<const Eigen::Vector3f> normals_world,
384
+ std::span<const Eigen::Vector3i> triangles,
385
+ std::span<const Eigen::Vector2f> textureCoords,
386
+ std::span<const Eigen::Vector3i> textureTriangles,
387
387
  const Eigen::Ref<const Eigen::VectorXf>& perVertexDiffuseColor,
388
388
  const Camera& camera,
389
389
  const Eigen::Matrix4f& modelMatrix,
@@ -418,8 +418,8 @@ void rasterizeMesh(
418
418
  /// @param depthOffset Depth offset for layered rendering
419
419
  /// @param imageOffset Pixel offset for comparative rendering
420
420
  void rasterizeWireframe(
421
- gsl::span<const Eigen::Vector3f> positions_world,
422
- gsl::span<const Eigen::Vector3i> triangles,
421
+ std::span<const Eigen::Vector3f> positions_world,
422
+ std::span<const Eigen::Vector3i> triangles,
423
423
  const Camera& camera,
424
424
  const Eigen::Matrix4f& modelMatrix,
425
425
  float nearClip,
@@ -433,7 +433,7 @@ void rasterizeWireframe(
433
433
 
434
434
  /// Rasterize mesh wireframe (flat array version)
435
435
  ///
436
- /// @see rasterizeWireframe(gsl::span<const Eigen::Vector3f>, gsl::span<const Eigen::Vector3i>,
436
+ /// @see rasterizeWireframe(std::span<const Eigen::Vector3f>, std::span<const Eigen::Vector3i>,
437
437
  /// const Camera&, const Eigen::Matrix4f&, float, const Eigen::Vector3f&, float, Span2f, Span3f,
438
438
  /// bool, float, const Eigen::Vector2f&)
439
439
  ///
@@ -473,8 +473,8 @@ void rasterizeWireframe(
473
473
  /// @param depthOffset Depth offset for layered rendering
474
474
  /// @param imageOffset Pixel offset for comparative rendering
475
475
  void rasterizeSplats(
476
- gsl::span<const Eigen::Vector3f> positions_world,
477
- gsl::span<const Eigen::Vector3f> normals_world,
476
+ std::span<const Eigen::Vector3f> positions_world,
477
+ std::span<const Eigen::Vector3f> normals_world,
478
478
  const Camera& camera,
479
479
  const Eigen::Matrix4f& modelMatrix,
480
480
  float nearClip,
@@ -499,7 +499,7 @@ void rasterizeSplats(
499
499
  /// pixels @param rgbBuffer Input/output RGB color buffer @param zBuffer **Optional** depth buffer
500
500
  /// (fills with zeros when provided) @param imageOffset Pixel offset for positioning
501
501
  void rasterizeLines2D(
502
- gsl::span<const Eigen::Vector2f> positions_image,
502
+ std::span<const Eigen::Vector2f> positions_image,
503
503
  const Eigen::Vector3f& color,
504
504
  float thickness,
505
505
  Span3f rgbBuffer,
@@ -508,7 +508,7 @@ void rasterizeLines2D(
508
508
 
509
509
  /// Rasterize 2D line segments (flat array version)
510
510
  ///
511
- /// @see rasterizeLines2D(gsl::span<const Eigen::Vector2f>, const Eigen::Vector3f&, float, Span3f,
511
+ /// @see rasterizeLines2D(std::span<const Eigen::Vector2f>, const Eigen::Vector3f&, float, Span3f,
512
512
  /// Span2f, const Eigen::Vector2f&)
513
513
  ///
514
514
  /// @param positions_image Flat array of 2D positions (x1,y1,x2,y2,...)
@@ -537,7 +537,7 @@ void rasterizeLines2D(
537
537
  /// @param zBuffer **Optional** depth buffer (fills with zeros when provided)
538
538
  /// @param imageOffset Pixel offset for positioning
539
539
  void rasterizeCircles2D(
540
- gsl::span<const Eigen::Vector2f> positions_image,
540
+ std::span<const Eigen::Vector2f> positions_image,
541
541
  const std::optional<Eigen::Vector3f>& lineColor,
542
542
  const std::optional<Eigen::Vector3f>& fillColor,
543
543
  float lineThickness,
@@ -548,7 +548,7 @@ void rasterizeCircles2D(
548
548
 
549
549
  /// Rasterize 2D circles (flat array version)
550
550
  ///
551
- /// @see rasterizeCircles2D(gsl::span<const Eigen::Vector2f>, const std::optional<Eigen::Vector3f>&,
551
+ /// @see rasterizeCircles2D(std::span<const Eigen::Vector2f>, const std::optional<Eigen::Vector3f>&,
552
552
  /// const std::optional<Eigen::Vector3f>&, float, float, Span3f, Span2f, const Eigen::Vector2f&)
553
553
  ///
554
554
  /// @param positions_image Flat array of 2D positions (x1,y1,x2,y2,...)
@@ -59,7 +59,7 @@ endif()
59
59
  add_library(axel::axel STATIC IMPORTED)
60
60
 
61
61
  set_target_properties(axel::axel PROPERTIES
62
- INTERFACE_COMPILE_FEATURES "cxx_std_17"
62
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
63
63
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
64
64
  INTERFACE_LINK_LIBRARIES "Eigen3::Eigen;Microsoft.GSL::GSL;Dispenso::dispenso;drjit"
65
65
  )
lib/libarrow.a CHANGED
Binary file
Binary file
lib/libaxel.a CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
lib/libmomentum_common.a CHANGED
Binary file
lib/libmomentum_diff_ik.a CHANGED
Binary file
lib/libmomentum_io.a CHANGED
Binary file
Binary file
lib/libmomentum_io_fbx.a CHANGED
Binary file
lib/libmomentum_io_gltf.a CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
lib/libmomentum_io_urdf.a CHANGED
Binary file
Binary file
lib/libmomentum_math.a CHANGED
Binary file
Binary file
Binary file
lib/libmomentum_rerun.a CHANGED
Binary file
Binary file
Binary file
Binary file
lib/libmomentum_solver.a CHANGED
Binary file
lib/librerun_sdk.a CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymomentum-cpu
3
- Version: 0.1.82.post0
3
+ Version: 0.1.83.post0
4
4
  Summary: A library providing foundational algorithms for human kinematic motion and numerical optimization solvers to apply human motion in various applications (CPU-only version for Linux, macOS Intel, and macOS ARM)
5
5
  Keywords: kinematics,motion,optimization,human-motion,inverse-kinematics,forward-kinematics,body-tracking,motion-capture,character-animation,robotics,cpu
6
6
  Author-Email: Meta Reality Labs Research <jeongseok@meta.com>
@@ -66,9 +66,11 @@ numerical optimization solvers to apply human motion in various applications.
66
66
  Pre-built binaries are available for Windows, macOS, and Linux:
67
67
 
68
68
  ```bash
69
- # Python (PyPI)
70
- pip install pymomentum-cpu # CPU version
71
- pip install pymomentum-gpu # GPU version with CUDA
69
+ # Python (PyPI) - uv preferred over pip
70
+ uv add pymomentum-cpu # CPU version
71
+ uv add pymomentum-gpu # GPU version with CUDA
72
+ pip install pymomentum-cpu # Alternative: using pip
73
+ pip install pymomentum-gpu
72
74
 
73
75
  # Python (Conda/Pixi)
74
76
  pixi add pymomentum # Auto-detects GPU/CPU