pymomentum-cpu 0.1.80.post0__cp312-cp312-manylinux_2_39_x86_64.whl → 0.1.82.post0__cp312-cp312-manylinux_2_39_x86_64.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 (54) hide show
  1. include/momentum/character_sequence_solver/sequence_solver_function.h +1 -1
  2. include/momentum/character_sequence_solver/vertex_sequence_error_function.h +6 -11
  3. include/momentum/character_solver/skinned_locator_triangle_error_function.h +4 -4
  4. include/momentum/io/marker/c3d_io.h +2 -1
  5. include/momentum/io/marker/marker_io.h +4 -2
  6. {lib64 → lib}/cmake/axel/axelTargets-release.cmake +2 -2
  7. {lib64 → lib}/cmake/momentum/momentumTargets-release.cmake +50 -50
  8. lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +3 -3
  9. lib/libarrow.a +0 -0
  10. lib/libarrow_bundled_dependencies.a +0 -0
  11. {lib64 → lib}/libaxel.a +0 -0
  12. {lib64 → lib}/libmomentum_app_utils.a +0 -0
  13. {lib64 → lib}/libmomentum_character.a +0 -0
  14. {lib64 → lib}/libmomentum_character_sequence_solver.a +0 -0
  15. {lib64 → lib}/libmomentum_character_solver.a +0 -0
  16. {lib64 → lib}/libmomentum_common.a +0 -0
  17. {lib64 → lib}/libmomentum_diff_ik.a +0 -0
  18. {lib64 → lib}/libmomentum_io.a +0 -0
  19. {lib64 → lib}/libmomentum_io_common.a +0 -0
  20. {lib64 → lib}/libmomentum_io_fbx.a +0 -0
  21. {lib64 → lib}/libmomentum_io_gltf.a +0 -0
  22. {lib64 → lib}/libmomentum_io_legacy_json.a +0 -0
  23. {lib64 → lib}/libmomentum_io_marker.a +0 -0
  24. {lib64 → lib}/libmomentum_io_motion.a +0 -0
  25. {lib64 → lib}/libmomentum_io_shape.a +0 -0
  26. {lib64 → lib}/libmomentum_io_skeleton.a +0 -0
  27. {lib64 → lib}/libmomentum_io_urdf.a +0 -0
  28. {lib64 → lib}/libmomentum_marker_tracker.a +0 -0
  29. {lib64 → lib}/libmomentum_math.a +0 -0
  30. {lib64 → lib}/libmomentum_online_qr.a +0 -0
  31. {lib64 → lib}/libmomentum_process_markers.a +0 -0
  32. {lib64 → lib}/libmomentum_rerun.a +0 -0
  33. {lib64 → lib}/libmomentum_simd_constraints.a +0 -0
  34. {lib64 → lib}/libmomentum_simd_generalized_loss.a +0 -0
  35. {lib64 → lib}/libmomentum_skeleton.a +0 -0
  36. {lib64 → lib}/libmomentum_solver.a +0 -0
  37. lib/librerun_sdk.a +0 -0
  38. pymomentum/axel.cpython-312-x86_64-linux-gnu.so +0 -0
  39. pymomentum/geometry.cpython-312-x86_64-linux-gnu.so +0 -0
  40. pymomentum/marker_tracking.cpython-312-x86_64-linux-gnu.so +0 -0
  41. pymomentum/solver.cpython-312-x86_64-linux-gnu.so +0 -0
  42. pymomentum/solver2.cpython-312-x86_64-linux-gnu.so +0 -0
  43. pymomentum/torch/character.py +47 -0
  44. {pymomentum_cpu-0.1.80.post0.dist-info → pymomentum_cpu-0.1.82.post0.dist-info}/METADATA +2 -2
  45. {pymomentum_cpu-0.1.80.post0.dist-info → pymomentum_cpu-0.1.82.post0.dist-info}/RECORD +53 -53
  46. pymomentum_cpu.libs/libezc3d-48face0b.so +0 -0
  47. pymomentum_cpu.libs/libezc3d-4a95ab2c.so +0 -0
  48. {lib64 → lib}/cmake/axel/axel-config.cmake +0 -0
  49. {lib64 → lib}/cmake/axel/axelTargets.cmake +0 -0
  50. {lib64 → lib}/cmake/momentum/Findre2.cmake +0 -0
  51. {lib64 → lib}/cmake/momentum/momentum-config.cmake +0 -0
  52. {lib64 → lib}/cmake/momentum/momentumTargets.cmake +0 -0
  53. {pymomentum_cpu-0.1.80.post0.dist-info → pymomentum_cpu-0.1.82.post0.dist-info}/WHEEL +0 -0
  54. {pymomentum_cpu-0.1.80.post0.dist-info → pymomentum_cpu-0.1.82.post0.dist-info}/licenses/LICENSE +0 -0
@@ -126,7 +126,7 @@ class SequenceSolverFunctionT : public SolverFunctionT<T> {
126
126
  std::atomic<size_t> numTotalPerFrameErrorFunctions_ = 0;
127
127
  std::atomic<size_t> numTotalSequenceErrorFunctions_ = 0;
128
128
 
129
- bool needsMesh_ = false;
129
+ std::atomic<bool> needsMesh_{false};
130
130
 
131
131
  friend class SequenceSolverT<T>;
132
132
  };
@@ -67,6 +67,10 @@ class VertexSequenceErrorFunctionT : public SequenceErrorFunctionT<T> {
67
67
  Eigen::Ref<Eigen::VectorX<T>> residual,
68
68
  int& usedRows) const final;
69
69
 
70
+ bool needsMesh() const final {
71
+ return true;
72
+ }
73
+
70
74
  [[nodiscard]] size_t getJacobianSize() const final;
71
75
 
72
76
  /// Add a vertex velocity constraint.
@@ -99,30 +103,21 @@ class VertexSequenceErrorFunctionT : public SequenceErrorFunctionT<T> {
99
103
  /// Calculate gradient for a single vertex velocity constraint.
100
104
  double calculateVelocityGradient(
101
105
  gsl::span<const SkeletonStateT<T>> skelStates,
106
+ gsl::span<const MeshStateT<T>> meshStates,
102
107
  const VertexVelocityConstraintT<T>& constraint,
103
108
  Eigen::Ref<Eigen::VectorX<T>> gradient) const;
104
109
 
105
110
  /// Calculate Jacobian for a single vertex velocity constraint.
106
111
  double calculateVelocityJacobian(
107
112
  gsl::span<const SkeletonStateT<T>> skelStates,
113
+ gsl::span<const MeshStateT<T>> meshStates,
108
114
  const VertexVelocityConstraintT<T>& constraint,
109
115
  Eigen::Ref<Eigen::MatrixX<T>> jacobian,
110
116
  Eigen::Ref<Eigen::VectorX<T>> residual,
111
117
  Eigen::Index startRow) const;
112
118
 
113
- /// Update meshes for both frames.
114
- void updateMeshes(
115
- gsl::span<const ModelParametersT<T>> modelParameters,
116
- gsl::span<const SkeletonStateT<T>> skelStates) const;
117
-
118
119
  const Character& character_;
119
120
  std::vector<VertexVelocityConstraintT<T>> constraints_;
120
-
121
- // Meshes for the two frames
122
- mutable std::unique_ptr<MeshT<T>> neutralMesh_;
123
- mutable std::unique_ptr<MeshT<T>> restMesh_; // Single rest mesh used for both frames
124
- mutable std::unique_ptr<MeshT<T>> posedMesh0_;
125
- mutable std::unique_ptr<MeshT<T>> posedMesh1_;
126
121
  };
127
122
 
128
123
  } // namespace momentum
@@ -109,23 +109,27 @@ class SkinnedLocatorTriangleErrorFunctionT : public SkeletonErrorFunctionT<T> {
109
109
 
110
110
  double calculatePositionJacobian(
111
111
  const ModelParametersT<T>& modelParameters,
112
+ const MeshStateT<T>& meshState,
112
113
  const SkinnedLocatorTriangleConstraintT<T>& constr,
113
114
  Ref<Eigen::MatrixX<T>> jac,
114
115
  Ref<Eigen::VectorX<T>> res) const;
115
116
 
116
117
  double calculatePlaneJacobian(
117
118
  const ModelParametersT<T>& modelParameters,
119
+ const MeshStateT<T>& meshState,
118
120
  const SkinnedLocatorTriangleConstraintT<T>& constr,
119
121
  Ref<Eigen::MatrixX<T>> jac,
120
122
  T& res) const;
121
123
 
122
124
  double calculatePositionGradient(
123
125
  const ModelParametersT<T>& modelParameters,
126
+ const MeshStateT<T>& meshState,
124
127
  const SkinnedLocatorTriangleConstraintT<T>& constr,
125
128
  Eigen::Ref<Eigen::VectorX<T>> gradient) const;
126
129
 
127
130
  double calculatePlaneGradient(
128
131
  const ModelParametersT<T>& modelParameters,
132
+ const MeshStateT<T>& meshState,
129
133
  const SkinnedLocatorTriangleConstraintT<T>& constr,
130
134
  Eigen::Ref<Eigen::VectorX<T>> gradient) const;
131
135
 
@@ -136,11 +140,7 @@ class SkinnedLocatorTriangleErrorFunctionT : public SkeletonErrorFunctionT<T> {
136
140
 
137
141
  std::vector<SkinnedLocatorTriangleConstraintT<T>> constraints_;
138
142
 
139
- std::unique_ptr<MeshT<T>> neutralMesh_; // Rest mesh without facial expression basis
140
- std::unique_ptr<MeshT<T>> restMesh_; // Rest positions after shape basis is applied
141
-
142
143
  const VertexConstraintType constraintType_;
143
- void updateMeshes(const ModelParametersT<T>& modelParameters);
144
144
  };
145
145
 
146
146
  } // namespace momentum
@@ -24,6 +24,7 @@ namespace momentum {
24
24
  /// @return std::vector<MarkerSequence> A vector containing the marker sequences from the C3D file.
25
25
  [[nodiscard]] std::vector<MarkerSequence> loadC3d(
26
26
  const std::string& filename,
27
- UpVector up = UpVector::Y);
27
+ UpVector up = UpVector::Y,
28
+ std::span<const std::string> validMarkerNames = {});
28
29
 
29
30
  } // namespace momentum
@@ -26,7 +26,8 @@ namespace momentum {
26
26
  /// the file.
27
27
  [[nodiscard]] std::vector<MarkerSequence> loadMarkers(
28
28
  const std::string& filename,
29
- UpVector up = UpVector::Y);
29
+ UpVector up = UpVector::Y,
30
+ std::span<const std::string> validMarkerNames = {});
30
31
 
31
32
  /// Loads the main subject's marker data from a marker file (c3d, trc, glb) and converts the
32
33
  /// positions to the target coordinate system. Default target coordinate system is: (Y-up,
@@ -40,7 +41,8 @@ namespace momentum {
40
41
  /// data, or an empty optional if no main subject is found.
41
42
  [[nodiscard]] std::optional<MarkerSequence> loadMarkersForMainSubject(
42
43
  const std::string& filename,
43
- UpVector up = UpVector::Y);
44
+ UpVector up = UpVector::Y,
45
+ std::span<const std::string> validMarkerNames = {});
44
46
 
45
47
  /// Finds the "main subject" from a vector of MarkerSequences. The main subject is currently defined
46
48
  /// as a named actor with the maximum number of visible markers in the sequence.
@@ -9,11 +9,11 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
9
9
  set_property(TARGET axel::axel APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
10
10
  set_target_properties(axel::axel PROPERTIES
11
11
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
12
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libaxel.a"
12
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libaxel.a"
13
13
  )
14
14
 
15
15
  list(APPEND _cmake_import_check_targets axel::axel )
16
- list(APPEND _cmake_import_check_files_for_axel::axel "${_IMPORT_PREFIX}/lib64/libaxel.a" )
16
+ list(APPEND _cmake_import_check_files_for_axel::axel "${_IMPORT_PREFIX}/lib/libaxel.a" )
17
17
 
18
18
  # Commands beyond this point should not need to know the version.
19
19
  set(CMAKE_IMPORT_FILE_VERSION)
@@ -9,251 +9,251 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
9
9
  set_property(TARGET momentum::common APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
10
10
  set_target_properties(momentum::common PROPERTIES
11
11
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
12
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_common.a"
12
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_common.a"
13
13
  )
14
14
 
15
15
  list(APPEND _cmake_import_check_targets momentum::common )
16
- list(APPEND _cmake_import_check_files_for_momentum::common "${_IMPORT_PREFIX}/lib64/libmomentum_common.a" )
16
+ list(APPEND _cmake_import_check_files_for_momentum::common "${_IMPORT_PREFIX}/lib/libmomentum_common.a" )
17
17
 
18
18
  # Import target "momentum::online_qr" for configuration "Release"
19
19
  set_property(TARGET momentum::online_qr APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
20
20
  set_target_properties(momentum::online_qr PROPERTIES
21
21
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
22
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_online_qr.a"
22
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_online_qr.a"
23
23
  )
24
24
 
25
25
  list(APPEND _cmake_import_check_targets momentum::online_qr )
26
- list(APPEND _cmake_import_check_files_for_momentum::online_qr "${_IMPORT_PREFIX}/lib64/libmomentum_online_qr.a" )
26
+ list(APPEND _cmake_import_check_files_for_momentum::online_qr "${_IMPORT_PREFIX}/lib/libmomentum_online_qr.a" )
27
27
 
28
28
  # Import target "momentum::math" for configuration "Release"
29
29
  set_property(TARGET momentum::math APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
30
30
  set_target_properties(momentum::math PROPERTIES
31
31
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
32
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_math.a"
32
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_math.a"
33
33
  )
34
34
 
35
35
  list(APPEND _cmake_import_check_targets momentum::math )
36
- list(APPEND _cmake_import_check_files_for_momentum::math "${_IMPORT_PREFIX}/lib64/libmomentum_math.a" )
36
+ list(APPEND _cmake_import_check_files_for_momentum::math "${_IMPORT_PREFIX}/lib/libmomentum_math.a" )
37
37
 
38
38
  # Import target "momentum::simd_generalized_loss" for configuration "Release"
39
39
  set_property(TARGET momentum::simd_generalized_loss APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
40
40
  set_target_properties(momentum::simd_generalized_loss PROPERTIES
41
41
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
42
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_simd_generalized_loss.a"
42
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_simd_generalized_loss.a"
43
43
  )
44
44
 
45
45
  list(APPEND _cmake_import_check_targets momentum::simd_generalized_loss )
46
- list(APPEND _cmake_import_check_files_for_momentum::simd_generalized_loss "${_IMPORT_PREFIX}/lib64/libmomentum_simd_generalized_loss.a" )
46
+ list(APPEND _cmake_import_check_files_for_momentum::simd_generalized_loss "${_IMPORT_PREFIX}/lib/libmomentum_simd_generalized_loss.a" )
47
47
 
48
48
  # Import target "momentum::skeleton" for configuration "Release"
49
49
  set_property(TARGET momentum::skeleton APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
50
50
  set_target_properties(momentum::skeleton PROPERTIES
51
51
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
52
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_skeleton.a"
52
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_skeleton.a"
53
53
  )
54
54
 
55
55
  list(APPEND _cmake_import_check_targets momentum::skeleton )
56
- list(APPEND _cmake_import_check_files_for_momentum::skeleton "${_IMPORT_PREFIX}/lib64/libmomentum_skeleton.a" )
56
+ list(APPEND _cmake_import_check_files_for_momentum::skeleton "${_IMPORT_PREFIX}/lib/libmomentum_skeleton.a" )
57
57
 
58
58
  # Import target "momentum::character" for configuration "Release"
59
59
  set_property(TARGET momentum::character APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
60
60
  set_target_properties(momentum::character PROPERTIES
61
61
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
62
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_character.a"
62
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_character.a"
63
63
  )
64
64
 
65
65
  list(APPEND _cmake_import_check_targets momentum::character )
66
- list(APPEND _cmake_import_check_files_for_momentum::character "${_IMPORT_PREFIX}/lib64/libmomentum_character.a" )
66
+ list(APPEND _cmake_import_check_files_for_momentum::character "${_IMPORT_PREFIX}/lib/libmomentum_character.a" )
67
67
 
68
68
  # Import target "momentum::solver" for configuration "Release"
69
69
  set_property(TARGET momentum::solver APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
70
70
  set_target_properties(momentum::solver PROPERTIES
71
71
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
72
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_solver.a"
72
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_solver.a"
73
73
  )
74
74
 
75
75
  list(APPEND _cmake_import_check_targets momentum::solver )
76
- list(APPEND _cmake_import_check_files_for_momentum::solver "${_IMPORT_PREFIX}/lib64/libmomentum_solver.a" )
76
+ list(APPEND _cmake_import_check_files_for_momentum::solver "${_IMPORT_PREFIX}/lib/libmomentum_solver.a" )
77
77
 
78
78
  # Import target "momentum::character_solver" for configuration "Release"
79
79
  set_property(TARGET momentum::character_solver APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
80
80
  set_target_properties(momentum::character_solver PROPERTIES
81
81
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
82
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_character_solver.a"
82
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_character_solver.a"
83
83
  )
84
84
 
85
85
  list(APPEND _cmake_import_check_targets momentum::character_solver )
86
- list(APPEND _cmake_import_check_files_for_momentum::character_solver "${_IMPORT_PREFIX}/lib64/libmomentum_character_solver.a" )
86
+ list(APPEND _cmake_import_check_files_for_momentum::character_solver "${_IMPORT_PREFIX}/lib/libmomentum_character_solver.a" )
87
87
 
88
88
  # Import target "momentum::simd_constraints" for configuration "Release"
89
89
  set_property(TARGET momentum::simd_constraints APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
90
90
  set_target_properties(momentum::simd_constraints PROPERTIES
91
91
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
92
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_simd_constraints.a"
92
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_simd_constraints.a"
93
93
  )
94
94
 
95
95
  list(APPEND _cmake_import_check_targets momentum::simd_constraints )
96
- list(APPEND _cmake_import_check_files_for_momentum::simd_constraints "${_IMPORT_PREFIX}/lib64/libmomentum_simd_constraints.a" )
96
+ list(APPEND _cmake_import_check_files_for_momentum::simd_constraints "${_IMPORT_PREFIX}/lib/libmomentum_simd_constraints.a" )
97
97
 
98
98
  # Import target "momentum::character_sequence_solver" for configuration "Release"
99
99
  set_property(TARGET momentum::character_sequence_solver APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
100
100
  set_target_properties(momentum::character_sequence_solver PROPERTIES
101
101
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
102
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_character_sequence_solver.a"
102
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_character_sequence_solver.a"
103
103
  )
104
104
 
105
105
  list(APPEND _cmake_import_check_targets momentum::character_sequence_solver )
106
- list(APPEND _cmake_import_check_files_for_momentum::character_sequence_solver "${_IMPORT_PREFIX}/lib64/libmomentum_character_sequence_solver.a" )
106
+ list(APPEND _cmake_import_check_files_for_momentum::character_sequence_solver "${_IMPORT_PREFIX}/lib/libmomentum_character_sequence_solver.a" )
107
107
 
108
108
  # Import target "momentum::diff_ik" for configuration "Release"
109
109
  set_property(TARGET momentum::diff_ik APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
110
110
  set_target_properties(momentum::diff_ik PROPERTIES
111
111
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
112
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_diff_ik.a"
112
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_diff_ik.a"
113
113
  )
114
114
 
115
115
  list(APPEND _cmake_import_check_targets momentum::diff_ik )
116
- list(APPEND _cmake_import_check_files_for_momentum::diff_ik "${_IMPORT_PREFIX}/lib64/libmomentum_diff_ik.a" )
116
+ list(APPEND _cmake_import_check_files_for_momentum::diff_ik "${_IMPORT_PREFIX}/lib/libmomentum_diff_ik.a" )
117
117
 
118
118
  # Import target "momentum::io_common" for configuration "Release"
119
119
  set_property(TARGET momentum::io_common APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
120
120
  set_target_properties(momentum::io_common PROPERTIES
121
121
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
122
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_common.a"
122
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_common.a"
123
123
  )
124
124
 
125
125
  list(APPEND _cmake_import_check_targets momentum::io_common )
126
- list(APPEND _cmake_import_check_files_for_momentum::io_common "${_IMPORT_PREFIX}/lib64/libmomentum_io_common.a" )
126
+ list(APPEND _cmake_import_check_files_for_momentum::io_common "${_IMPORT_PREFIX}/lib/libmomentum_io_common.a" )
127
127
 
128
128
  # Import target "momentum::io_skeleton" for configuration "Release"
129
129
  set_property(TARGET momentum::io_skeleton APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
130
130
  set_target_properties(momentum::io_skeleton PROPERTIES
131
131
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
132
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_skeleton.a"
132
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_skeleton.a"
133
133
  )
134
134
 
135
135
  list(APPEND _cmake_import_check_targets momentum::io_skeleton )
136
- list(APPEND _cmake_import_check_files_for_momentum::io_skeleton "${_IMPORT_PREFIX}/lib64/libmomentum_io_skeleton.a" )
136
+ list(APPEND _cmake_import_check_files_for_momentum::io_skeleton "${_IMPORT_PREFIX}/lib/libmomentum_io_skeleton.a" )
137
137
 
138
138
  # Import target "momentum::io_shape" for configuration "Release"
139
139
  set_property(TARGET momentum::io_shape APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
140
140
  set_target_properties(momentum::io_shape PROPERTIES
141
141
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
142
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_shape.a"
142
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_shape.a"
143
143
  )
144
144
 
145
145
  list(APPEND _cmake_import_check_targets momentum::io_shape )
146
- list(APPEND _cmake_import_check_files_for_momentum::io_shape "${_IMPORT_PREFIX}/lib64/libmomentum_io_shape.a" )
146
+ list(APPEND _cmake_import_check_files_for_momentum::io_shape "${_IMPORT_PREFIX}/lib/libmomentum_io_shape.a" )
147
147
 
148
148
  # Import target "momentum::io_fbx" for configuration "Release"
149
149
  set_property(TARGET momentum::io_fbx APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
150
150
  set_target_properties(momentum::io_fbx PROPERTIES
151
151
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
152
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_fbx.a"
152
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_fbx.a"
153
153
  )
154
154
 
155
155
  list(APPEND _cmake_import_check_targets momentum::io_fbx )
156
- list(APPEND _cmake_import_check_files_for_momentum::io_fbx "${_IMPORT_PREFIX}/lib64/libmomentum_io_fbx.a" )
156
+ list(APPEND _cmake_import_check_files_for_momentum::io_fbx "${_IMPORT_PREFIX}/lib/libmomentum_io_fbx.a" )
157
157
 
158
158
  # Import target "momentum::io_gltf" for configuration "Release"
159
159
  set_property(TARGET momentum::io_gltf APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
160
160
  set_target_properties(momentum::io_gltf PROPERTIES
161
161
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
162
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_gltf.a"
162
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_gltf.a"
163
163
  )
164
164
 
165
165
  list(APPEND _cmake_import_check_targets momentum::io_gltf )
166
- list(APPEND _cmake_import_check_files_for_momentum::io_gltf "${_IMPORT_PREFIX}/lib64/libmomentum_io_gltf.a" )
166
+ list(APPEND _cmake_import_check_files_for_momentum::io_gltf "${_IMPORT_PREFIX}/lib/libmomentum_io_gltf.a" )
167
167
 
168
168
  # Import target "momentum::io_urdf" for configuration "Release"
169
169
  set_property(TARGET momentum::io_urdf APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
170
170
  set_target_properties(momentum::io_urdf PROPERTIES
171
171
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
172
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_urdf.a"
172
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_urdf.a"
173
173
  )
174
174
 
175
175
  list(APPEND _cmake_import_check_targets momentum::io_urdf )
176
- list(APPEND _cmake_import_check_files_for_momentum::io_urdf "${_IMPORT_PREFIX}/lib64/libmomentum_io_urdf.a" )
176
+ list(APPEND _cmake_import_check_files_for_momentum::io_urdf "${_IMPORT_PREFIX}/lib/libmomentum_io_urdf.a" )
177
177
 
178
178
  # Import target "momentum::io_legacy_json" for configuration "Release"
179
179
  set_property(TARGET momentum::io_legacy_json APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
180
180
  set_target_properties(momentum::io_legacy_json PROPERTIES
181
181
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
182
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_legacy_json.a"
182
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_legacy_json.a"
183
183
  )
184
184
 
185
185
  list(APPEND _cmake_import_check_targets momentum::io_legacy_json )
186
- list(APPEND _cmake_import_check_files_for_momentum::io_legacy_json "${_IMPORT_PREFIX}/lib64/libmomentum_io_legacy_json.a" )
186
+ list(APPEND _cmake_import_check_files_for_momentum::io_legacy_json "${_IMPORT_PREFIX}/lib/libmomentum_io_legacy_json.a" )
187
187
 
188
188
  # Import target "momentum::io_motion" for configuration "Release"
189
189
  set_property(TARGET momentum::io_motion APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
190
190
  set_target_properties(momentum::io_motion PROPERTIES
191
191
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
192
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_motion.a"
192
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_motion.a"
193
193
  )
194
194
 
195
195
  list(APPEND _cmake_import_check_targets momentum::io_motion )
196
- list(APPEND _cmake_import_check_files_for_momentum::io_motion "${_IMPORT_PREFIX}/lib64/libmomentum_io_motion.a" )
196
+ list(APPEND _cmake_import_check_files_for_momentum::io_motion "${_IMPORT_PREFIX}/lib/libmomentum_io_motion.a" )
197
197
 
198
198
  # Import target "momentum::io_marker" for configuration "Release"
199
199
  set_property(TARGET momentum::io_marker APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
200
200
  set_target_properties(momentum::io_marker PROPERTIES
201
201
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
202
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io_marker.a"
202
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io_marker.a"
203
203
  )
204
204
 
205
205
  list(APPEND _cmake_import_check_targets momentum::io_marker )
206
- list(APPEND _cmake_import_check_files_for_momentum::io_marker "${_IMPORT_PREFIX}/lib64/libmomentum_io_marker.a" )
206
+ list(APPEND _cmake_import_check_files_for_momentum::io_marker "${_IMPORT_PREFIX}/lib/libmomentum_io_marker.a" )
207
207
 
208
208
  # Import target "momentum::io" for configuration "Release"
209
209
  set_property(TARGET momentum::io APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
210
210
  set_target_properties(momentum::io PROPERTIES
211
211
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
212
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_io.a"
212
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_io.a"
213
213
  )
214
214
 
215
215
  list(APPEND _cmake_import_check_targets momentum::io )
216
- list(APPEND _cmake_import_check_files_for_momentum::io "${_IMPORT_PREFIX}/lib64/libmomentum_io.a" )
216
+ list(APPEND _cmake_import_check_files_for_momentum::io "${_IMPORT_PREFIX}/lib/libmomentum_io.a" )
217
217
 
218
218
  # Import target "momentum::marker_tracker" for configuration "Release"
219
219
  set_property(TARGET momentum::marker_tracker APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
220
220
  set_target_properties(momentum::marker_tracker PROPERTIES
221
221
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
222
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_marker_tracker.a"
222
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_marker_tracker.a"
223
223
  )
224
224
 
225
225
  list(APPEND _cmake_import_check_targets momentum::marker_tracker )
226
- list(APPEND _cmake_import_check_files_for_momentum::marker_tracker "${_IMPORT_PREFIX}/lib64/libmomentum_marker_tracker.a" )
226
+ list(APPEND _cmake_import_check_files_for_momentum::marker_tracker "${_IMPORT_PREFIX}/lib/libmomentum_marker_tracker.a" )
227
227
 
228
228
  # Import target "momentum::app_utils" for configuration "Release"
229
229
  set_property(TARGET momentum::app_utils APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
230
230
  set_target_properties(momentum::app_utils PROPERTIES
231
231
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
232
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_app_utils.a"
232
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_app_utils.a"
233
233
  )
234
234
 
235
235
  list(APPEND _cmake_import_check_targets momentum::app_utils )
236
- list(APPEND _cmake_import_check_files_for_momentum::app_utils "${_IMPORT_PREFIX}/lib64/libmomentum_app_utils.a" )
236
+ list(APPEND _cmake_import_check_files_for_momentum::app_utils "${_IMPORT_PREFIX}/lib/libmomentum_app_utils.a" )
237
237
 
238
238
  # Import target "momentum::process_markers" for configuration "Release"
239
239
  set_property(TARGET momentum::process_markers APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
240
240
  set_target_properties(momentum::process_markers PROPERTIES
241
241
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
242
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_process_markers.a"
242
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_process_markers.a"
243
243
  )
244
244
 
245
245
  list(APPEND _cmake_import_check_targets momentum::process_markers )
246
- list(APPEND _cmake_import_check_files_for_momentum::process_markers "${_IMPORT_PREFIX}/lib64/libmomentum_process_markers.a" )
246
+ list(APPEND _cmake_import_check_files_for_momentum::process_markers "${_IMPORT_PREFIX}/lib/libmomentum_process_markers.a" )
247
247
 
248
248
  # Import target "momentum::rerun" for configuration "Release"
249
249
  set_property(TARGET momentum::rerun APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
250
250
  set_target_properties(momentum::rerun PROPERTIES
251
251
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
252
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libmomentum_rerun.a"
252
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libmomentum_rerun.a"
253
253
  )
254
254
 
255
255
  list(APPEND _cmake_import_check_targets momentum::rerun )
256
- list(APPEND _cmake_import_check_files_for_momentum::rerun "${_IMPORT_PREFIX}/lib64/libmomentum_rerun.a" )
256
+ list(APPEND _cmake_import_check_files_for_momentum::rerun "${_IMPORT_PREFIX}/lib/libmomentum_rerun.a" )
257
257
 
258
258
  # Commands beyond this point should not need to know the version.
259
259
  set(CMAKE_IMPORT_FILE_VERSION)
@@ -15,7 +15,7 @@ if(ON)
15
15
  if(NOT TARGET rerun_c)
16
16
  # Setup `rerun_c` (imported libraries can't be exported!)
17
17
  add_library(rerun_c STATIC IMPORTED GLOBAL)
18
- get_filename_component(RERUN_C_LIB_NAME "/home/jeongseok/dev/momentum/momentum/build/cp312-cp312-linux_x86_64/_deps/rerun_sdk-src/lib/librerun_c__linux_x64.a" NAME)
18
+ get_filename_component(RERUN_C_LIB_NAME "/home/runner/work/momentum/momentum/build/cp312-cp312-linux_x86_64/_deps/rerun_sdk-src/lib/librerun_c__linux_x64.a" NAME)
19
19
  set_target_properties(rerun_c PROPERTIES IMPORTED_LOCATION "${RERUN_LIB_DIR}/${RERUN_C_LIB_NAME}")
20
20
  if(APPLE)
21
21
  target_link_libraries(rerun_c INTERFACE "-framework CoreFoundation" "-framework IOKit")
@@ -34,14 +34,14 @@ if(ON AND NOT OFF)
34
34
 
35
35
  if(NOT TARGET rerun_arrow_target)
36
36
  add_library(rerun_arrow_target STATIC IMPORTED GLOBAL)
37
- get_filename_component(RERUN_ARROW_LIB_NAME "/home/jeongseok/dev/momentum/momentum/build/cp312-cp312-linux_x86_64/arrow/lib/libarrow.a" NAME)
37
+ get_filename_component(RERUN_ARROW_LIB_NAME "/home/runner/work/momentum/momentum/build/cp312-cp312-linux_x86_64/arrow/lib/libarrow.a" NAME)
38
38
  set_target_properties(rerun_arrow_target PROPERTIES IMPORTED_LOCATION "${RERUN_LIB_DIR}/${RERUN_ARROW_LIB_NAME}")
39
39
  endif()
40
40
 
41
41
  # We have to explicitly opt in the arrow bundled dependencies, otherwise we're missing the symbols for mimalloc.
42
42
  if(NOT TARGET arrow_targetBundledDeps)
43
43
  add_library(arrow_targetBundledDeps STATIC IMPORTED)
44
- get_filename_component(RERUN_ARROW_DEPS_LIB_NAME "/home/jeongseok/dev/momentum/momentum/build/cp312-cp312-linux_x86_64/arrow/lib/libarrow_bundled_dependencies.a" NAME)
44
+ get_filename_component(RERUN_ARROW_DEPS_LIB_NAME "/home/runner/work/momentum/momentum/build/cp312-cp312-linux_x86_64/arrow/lib/libarrow_bundled_dependencies.a" NAME)
45
45
  set_target_properties(arrow_targetBundledDeps PROPERTIES IMPORTED_LOCATION "${RERUN_LIB_DIR}/${RERUN_ARROW_DEPS_LIB_NAME}")
46
46
  target_link_libraries(rerun_arrow_target INTERFACE arrow_targetBundledDeps)
47
47
  endif()
lib/libarrow.a CHANGED
Binary file
Binary file
{lib64 → lib}/libaxel.a RENAMED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
lib/librerun_sdk.a CHANGED
Binary file
@@ -485,6 +485,40 @@ class Mesh(torch.nn.Module):
485
485
  )
486
486
 
487
487
 
488
+ class BlendShape(torch.nn.Module):
489
+ def __init__(
490
+ self,
491
+ character: pym_geometry.Character,
492
+ *,
493
+ dtype: torch.dtype = torch.float32,
494
+ ) -> None:
495
+ super().__init__()
496
+
497
+ assert character.blend_shape is not None
498
+ self.register_buffer(
499
+ "base_shape",
500
+ torch.tensor(character.blend_shape.base_shape, dtype=dtype)
501
+ .clone()
502
+ .detach(),
503
+ )
504
+
505
+ assert character.blend_shape is not None
506
+ self.register_buffer(
507
+ "shape_vectors",
508
+ torch.tensor(character.blend_shape.shape_vectors, dtype=dtype)
509
+ .clone()
510
+ .detach(),
511
+ )
512
+
513
+ def forward(self, coeffs: torch.Tensor) -> torch.Tensor:
514
+ if not hasattr(self, "base_shape"):
515
+ raise RuntimeError("Character has no blendshapes")
516
+ return (
517
+ torch.einsum("nvd, ...n -> ...vd", self.shape_vectors, coeffs)
518
+ + self.base_shape
519
+ )
520
+
521
+
488
522
  class ParameterTransform(torch.nn.Module):
489
523
  def __init__(
490
524
  self,
@@ -735,6 +769,9 @@ class Character(torch.nn.Module):
735
769
  character.parameter_limits, dtype=dtype
736
770
  )
737
771
 
772
+ if has_rest_mesh and character.blend_shape is not None:
773
+ self.blend_shape: BlendShape = BlendShape(character, dtype=dtype)
774
+
738
775
  def joint_parameters_to_local_skeleton_state(
739
776
  self, joint_parameters: torch.Tensor
740
777
  ) -> torch.Tensor:
@@ -782,6 +819,16 @@ class Character(torch.nn.Module):
782
819
  self.model_parameters_to_joint_parameters(model_parameters)
783
820
  )
784
821
 
822
+ def model_parameters_to_blendshape_coefficients(
823
+ self, model_parameters: torch.Tensor
824
+ ) -> torch.Tensor:
825
+ return model_parameters[..., self.parameter_transform.blendshape_parameters]
826
+
827
+ def bind_pose(self) -> torch.Tensor:
828
+ return self.joint_parameters_to_skeleton_state(
829
+ torch.zeros((1, len(self.skeleton.joint_names), 7))
830
+ )
831
+
785
832
  def skin_points(
786
833
  self,
787
834
  skel_state: torch.Tensor,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymomentum-cpu
3
- Version: 0.1.80.post0
3
+ Version: 0.1.82.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>
@@ -86,7 +86,7 @@ conda install -c conda-forge momentum-cpp
86
86
  ```bash
87
87
  # Install and run
88
88
  pip install pymomentum-cpu
89
- python -c "import pymomentum as pm; print(pm.__version__)"
89
+ python -c "import pymomentum.geometry as geom; print(dir(geom))"
90
90
  ```
91
91
 
92
92
  ### Building from Source
@@ -59,9 +59,9 @@ include/momentum/character_sequence_solver/multipose_solver.h,sha256=24p495xvB_y
59
59
  include/momentum/character_sequence_solver/multipose_solver_function.h,sha256=D94Ogh8_vIIfoOoAEugO452M63kmivXmaMwqfqTcmCE,2674
60
60
  include/momentum/character_sequence_solver/sequence_error_function.h,sha256=HppyeWso5FYrvblK96uZa-GZ0fgQzhCLWnzS3cVxVsY,3277
61
61
  include/momentum/character_sequence_solver/sequence_solver.h,sha256=YftMwRqsXfapUK-VZi849wtUEKEOl8t25oL4oHBooJc,4395
62
- include/momentum/character_sequence_solver/sequence_solver_function.h,sha256=jpt9-Hlcvs8cRXPO9dOtJBSgCCNkRzkxOGTvdwWxKMM,4695
62
+ include/momentum/character_sequence_solver/sequence_solver_function.h,sha256=s1D4-Tx7HLq8o8rB24d04_2DQqOLL4HgIYfPMd15jWU,4707
63
63
  include/momentum/character_sequence_solver/state_sequence_error_function.h,sha256=FwGpDfnBfjXTUQ1vcGd1nWEil76xUigFcwdQSZ_waxk,4126
64
- include/momentum/character_sequence_solver/vertex_sequence_error_function.h,sha256=zlVqvcTNdqVptwgJ2BAhHrmqBGhRnDYTCL4jP11vwGM,4613
64
+ include/momentum/character_sequence_solver/vertex_sequence_error_function.h,sha256=G074FNXYPk612dBdZ_WYFeYekFGlxWGwZU1cFgyCK4c,4319
65
65
  include/momentum/character_solver/aim_error_function.h,sha256=2ol3INOlR-io7nqHMJtjldzSwD-gn45dAznDt6DWhaQ,4068
66
66
  include/momentum/character_solver/collision_error_function.h,sha256=YXvptjE-72jiuP1SN2sVaKk0qgsB3Xp4Qv6h4rcbPLI,2598
67
67
  include/momentum/character_solver/collision_error_function_stateless.h,sha256=ru4zLDHKxkx1CrfGsAAT-twVsGVyxpHKezhSwPgwfN4,2409
@@ -88,7 +88,7 @@ include/momentum/character_solver/simd_position_error_function.h,sha256=7s4tBadx
88
88
  include/momentum/character_solver/skeleton_error_function.h,sha256=seAbE1XfQvCbNuMBXMXcx5epuvrNIX0E1yjFy0q9_pw,4477
89
89
  include/momentum/character_solver/skeleton_solver_function.h,sha256=OYrfGUdfNB6tuhb5VvVi7qIrDLuUT73gKtNj2ZD8UXY,3084
90
90
  include/momentum/character_solver/skinned_locator_error_function.h,sha256=IG8CbBJxMCf0mm0-YCq7vNbwtwm9eF2m_H4Hl1CLvug,6525
91
- include/momentum/character_solver/skinned_locator_triangle_error_function.h,sha256=6v5CudtVwMU8lfjBlfOyjF3HwpIHACW9k9iaBjUJdLw,5235
91
+ include/momentum/character_solver/skinned_locator_triangle_error_function.h,sha256=54ipdFT2OjmXL3WLBIaFO2zjMP_rAOFrlagWipDJRMo,5148
92
92
  include/momentum/character_solver/skinning_weight_iterator.h,sha256=O5A9dnKmG8_q7MCjAnImEp_1XfTKVDaS76p0PLePJQk,2406
93
93
  include/momentum/character_solver/state_error_function.h,sha256=qkgPgKcn0FLahMsCZIHg2_10Ht9tcUQoNgKZtkSeN6I,2895
94
94
  include/momentum/character_solver/transform_pose.h,sha256=PCmBQ8FcXfcR4udOlgUC7-gO7UDCJobCumG7PTlrgy4,3213
@@ -136,10 +136,10 @@ include/momentum/io/gltf/utils/accessor_utils.h,sha256=r4ACjFdlRieXNNoM4bnuTtcbw
136
136
  include/momentum/io/gltf/utils/coordinate_utils.h,sha256=NFxsPzEeyfM5_ffehKAnUPd_XZ-kCYQztjah034oKts,1517
137
137
  include/momentum/io/gltf/utils/json_utils.h,sha256=yg1sNvZ1HK6tUvgVHjiGzwkdrf8OG1O8K14SwXD_W8k,3785
138
138
  include/momentum/io/legacy_json/legacy_json_io.h,sha256=KIWTWIYw7hl9OKv55fh6TmvvqbcdSWUo6tEoRHxJPho,2684
139
- include/momentum/io/marker/c3d_io.h,sha256=N--o65fl4q8jsDS-HnZ88ke-M2vMwa9v_4w7_3Sf2Qc,1094
139
+ include/momentum/io/marker/c3d_io.h,sha256=ocMAsu7kx--9gE0SYI0slpr8oVMk0WhlAz32UHadX5I,1150
140
140
  include/momentum/io/marker/conversions.h,sha256=mzXsulY04aR8XKOFBnPHaYnUck_hPbbdfAUQqL_X5GE,2603
141
141
  include/momentum/io/marker/coordinate_system.h,sha256=oy72AnwBisqq0loM7mxbNio9OCwIe0mjGdtVry5rKqw,780
142
- include/momentum/io/marker/marker_io.h,sha256=TmLMF5mfRk8LeGX-sPaLMTYG3fjZdugPbCKKdpNsUAc,2318
142
+ include/momentum/io/marker/marker_io.h,sha256=Aa0kJQXaCG7hjCeDDifVEcz7AO934_pKFdNzjjn6tJU,2430
143
143
  include/momentum/io/marker/trc_io.h,sha256=Gvx9SJvhkXgs4eMkqUFANA-eqGnHftsbMzaEy-6F0uU,1046
144
144
  include/momentum/io/motion/mmo_io.h,sha256=S6ZMWw7xSvMrEf0a3z5LWvaX0Z5whmQWgpN999bemK8,3572
145
145
  include/momentum/io/shape/blend_shape_io.h,sha256=IEKxC5m9EkVfQ8BfDmyyoeFSqz0Dipubwaf4iGWMwfc,2827
@@ -450,60 +450,60 @@ include/rerun/datatypes/video_timestamp.hpp,sha256=Mfhprerr84G31EZcSt_82b1GT-XFI
450
450
  include/rerun/datatypes/view_coordinates.hpp,sha256=qoKlxS-oQDx4_8SE1kGUJvV0LtSy2ckJGSNRlq6xUU8,3032
451
451
  include/rerun/datatypes/visible_time_range.hpp,sha256=6HIjxAUOXtv7I7g0GflgaRTwLbHHO2WXcyZtMZGqBWk,1778
452
452
  include/rerun/third_party/cxxopts.hpp,sha256=zp6SePNC9y1tAD7ryAodVydRCo0leWDwZRmcf4TbWEc,71577
453
- lib/libarrow.a,sha256=r-TdAGwfxPZxBgy7mIxAqnzmPaQLKj-nIA1loZIso8g,33273126
454
- lib/libarrow_bundled_dependencies.a,sha256=4L6SOlQUq3ob_31zwD0IyI2vGxdLARAkrWpOThsAyL4,244362
453
+ lib/libarrow.a,sha256=dR5VMgOeEm2KbXB-vOohcYhQTU2oRHU8l9iY_jr3Yqk,33272926
454
+ lib/libarrow_bundled_dependencies.a,sha256=-i0p0qKCy87w1YdUlYcV86ImwDHLg3JX76Io09JJIhc,244362
455
+ lib/libaxel.a,sha256=FfkZ5N-_Tdw0eh1iYexGn9ATOoEsyOrzuycZNfkmHDA,1225348
456
+ lib/libmomentum_app_utils.a,sha256=QNayJuhZuThGlrocngROFUKWXc2dEBPd0aFmZlpHKws,731204
457
+ lib/libmomentum_character.a,sha256=6gsJyKZRvm3B3fxjVWaB3m-xRQdFlSL6DaUUcCf6BiY,2558960
458
+ lib/libmomentum_character_sequence_solver.a,sha256=0sboGdXALgbcEMlUA-aa7TiEw5PaAo3u6C9paztbKJ8,3304392
459
+ lib/libmomentum_character_solver.a,sha256=NU_mp4cECW_ukcIit25issPAzP9AJxNzUkNJRqLPZJU,9012882
460
+ lib/libmomentum_common.a,sha256=_FD7dwd9dGWco0phLnrPcqCrN1OYu9SNBob3y8D4vGY,812114
461
+ lib/libmomentum_diff_ik.a,sha256=2NN7wFhajh2gxS0xplTPjBxC2sFDdovdH8aE9WiBcHA,4673132
462
+ lib/libmomentum_io.a,sha256=Qnt3SnBR7J3V3R_U5aC9_3thjs1vDFOcQQ9UBKGFgNg,207354
463
+ lib/libmomentum_io_common.a,sha256=W2WAs0h_x5nbSMd9A3kg8lvtV228yqmzW-NVTrWpIrU,202526
464
+ lib/libmomentum_io_fbx.a,sha256=Sa-LyWWTzUZBbtzwSMGv6C6JY1G9t7rnGB0-Q8IVam0,1849894
465
+ lib/libmomentum_io_gltf.a,sha256=pieuPfN9e_2o_w-_2qVcVczUV886IHGNRZrkFdRZCYI,4281270
466
+ lib/libmomentum_io_legacy_json.a,sha256=bquS7aPqFGDXT7Q6sKyjhWEp_g0u2OOxfmJjdDFn0eM,714782
467
+ lib/libmomentum_io_marker.a,sha256=vBCG0i23YKAOKwG9sBfH3yh0YczrdR0Jf1jGn9MRzY0,2287056
468
+ lib/libmomentum_io_motion.a,sha256=DrI4UPvsJYICygoHfsn7M5J2uoDji1Q7Ahnfqs8sHwg,793718
469
+ lib/libmomentum_io_shape.a,sha256=L0uTak90Vzxxun8162Utkg3cQBehiLKD9Y4sK9jG3lI,1365814
470
+ lib/libmomentum_io_skeleton.a,sha256=YVg33vEr2ISvHxuhdCgUuq22amfUBA7jOhm2UpoX0wk,2684638
471
+ lib/libmomentum_io_urdf.a,sha256=pDiDotMZ-rffMrDHTH-z2CnghuHsP-0jOJPWd7gkntE,313770
472
+ lib/libmomentum_marker_tracker.a,sha256=ct-v6WdaHFKLYbBCIAjNyAQSkelDfUyfSuJ79arSY_8,1963812
473
+ lib/libmomentum_math.a,sha256=8zGJ5JW3xEAJx61AXR8cBgUXpVZHROn6B7EdKqsXYQQ,1641786
474
+ lib/libmomentum_online_qr.a,sha256=F6RNJGx2kEuMqp4GslSpFHDq11gnV_hXn0OtXsNUzfo,229302
475
+ lib/libmomentum_process_markers.a,sha256=UvYD797lmHPTvbAONaesQ0Y0ehB2fTw1Su8t9zhUTY0,1251670
476
+ lib/libmomentum_rerun.a,sha256=bmwTedtZsikzSsHczDrXIuEsHHHElnKHPpQsYtWt2EA,1137038
477
+ lib/libmomentum_simd_constraints.a,sha256=ix8cmOsjCvqbMwm1qdEqJU7VuB96tCxkrKKQyFivgdY,776086
478
+ lib/libmomentum_simd_generalized_loss.a,sha256=3MOmCz5Hem69jkyZIQQ6L9xprb_L4qB49nOUhxUkFUA,753012
479
+ lib/libmomentum_skeleton.a,sha256=IxNDghBTMdaCrS4tLIl2wJSqauztHM-SCar8i7b7nPg,789844
480
+ lib/libmomentum_solver.a,sha256=IiLuvYH9lzi8nFacjlVVTxm8PazRwAeuUAmFgGc39NQ,1610354
455
481
  lib/librerun_c__linux_x64.a,sha256=JadrhPNhNjgRXq7eo8ZpwZJb4lpOSnvb__ds-OhYPfA,125411548
456
- lib/librerun_sdk.a,sha256=uwj8l6ER7-mca2F3RaGME-JoftFf1JWNN83ZIgkbWyI,5552506
457
- lib/cmake/rerun_sdk/rerun_sdkConfig.cmake,sha256=1L4QI-NJWakooTIuJKqtA_C1EjOCM9FKBBdjQzHEoe4,3346
482
+ lib/librerun_sdk.a,sha256=UImMRD5w4ppi0oNh-s8qpSdoWDdE1ve60GoajzeOM2c,5552506
483
+ lib/cmake/axel/axel-config.cmake,sha256=gTDQ-zK9pDcMzFmSoKorPKVbCaeUhK6JVGMmui1QX64,1372
484
+ lib/cmake/axel/axelTargets-release.cmake,sha256=70WWJMCgKdg3q_qvXHWlwSwJhQzdjJTY5IbCxFkMMPU,819
485
+ lib/cmake/axel/axelTargets.cmake,sha256=gtHQernEzZl5Kc1GmxzmFX_IXfDNhuXscPsfxzz4fkI,4231
486
+ lib/cmake/momentum/Findre2.cmake,sha256=bKFmT9xqyT87uOjOojiR3uAzIx09X1jVVtMtw8feDM4,1290
487
+ lib/cmake/momentum/momentum-config.cmake,sha256=Ma8BDkEqOBeFAuKj5HaZY8HP2_vXGfI1v3WFI325SJA,1993
488
+ lib/cmake/momentum/momentumTargets-release.cmake,sha256=0BHjhHRjBcvgrfmKjv0Rj0i6HEs17V5ohKghuvBSDG0,13417
489
+ lib/cmake/momentum/momentumTargets.cmake,sha256=-ZocI6gx3eZTRDo4Ynz5TwiFXwZOBF9JqPAtTq0Mx3c,15954
490
+ lib/cmake/rerun_sdk/rerun_sdkConfig.cmake,sha256=lfa5jHarey61BU6XribQYyp_qmduppNVhIhYkOo1-ZQ,3340
458
491
  lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake,sha256=pkP-Dk2ua51-lUaTXsyrol2-gkTmJ9cVmQBOc_YBBXk,3252
459
492
  lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake,sha256=oJmUbA8vo_Af5olAGr7JcaiuRPU4dihtdClmCq11ADY,824
460
493
  lib/cmake/rerun_sdk/rerun_sdkTargets.cmake,sha256=BNlHggsz8G6CC3ypFIFo4xMQVy5c2aSaGJr7nQTmLIM,4255
461
- lib64/libaxel.a,sha256=3Crn1-tiy0_9eUtooR74v9DNCwc0q1m4__ssxh3Wip4,1225348
462
- lib64/libmomentum_app_utils.a,sha256=n8ZxShAGSFyBMx452PVTseVmwPwx5TtRLzB8kJev9cI,731204
463
- lib64/libmomentum_character.a,sha256=LsVHYo8leAv5gYhLWaUQfeYGllz2mGNKCuS2WFQgp_0,2558960
464
- lib64/libmomentum_character_sequence_solver.a,sha256=fVutnzV1vI85B1G67QiNVAC7uXZTVyBl0cd6aLq6AHk,3344130
465
- lib64/libmomentum_character_solver.a,sha256=0fryuM9PJP4SSbgH97LOwbSZcqQalYkcmcj3Exe_rck,9031550
466
- lib64/libmomentum_common.a,sha256=cgjl62Ucjqy1Xk-N6fqB5kIQcA12f9FrB3AEMmJbAZk,812114
467
- lib64/libmomentum_diff_ik.a,sha256=xPana66iecf8v_86FY06vmfEoq8UADmG3HMEaVwc6kI,4673132
468
- lib64/libmomentum_io.a,sha256=B6PGcIfrsf72yoGQ9Dn69wzLpi30hT8z199ZF9MgeBA,207354
469
- lib64/libmomentum_io_common.a,sha256=PdXwCWDHa6BzNdO2vDytlHJr6zMFKYAFDOS5QRUzQ9A,202526
470
- lib64/libmomentum_io_fbx.a,sha256=BO4Wc4Wm0t9j8KMpT8c0A4R--smVzEp3GBzfXWK-GjQ,1849894
471
- lib64/libmomentum_io_gltf.a,sha256=sBMeiAehk9t9rY9B7scj-ylDbp1M9FSfOyUU9CB5vfk,4281270
472
- lib64/libmomentum_io_legacy_json.a,sha256=o2qnobB6URiW5BoiV9rOssoMcfRpvT_P7flD3xAtsGw,714782
473
- lib64/libmomentum_io_marker.a,sha256=7Vh3bFng055sFn0dvlZWvNTY-UYCt_OYu7gUhhO8k2g,2283748
474
- lib64/libmomentum_io_motion.a,sha256=KWRozgQNcQ0e6MCt0I-Jt2c0qwSdPYcHZwoSqESwciM,793718
475
- lib64/libmomentum_io_shape.a,sha256=kF1CrqbI7sIFouzq7bDAv3Szw7w9btBZLxALTQrF7Q0,1365814
476
- lib64/libmomentum_io_skeleton.a,sha256=Fg1IyxJtKHnvxgYJWCHvbZECNbe82boyDQZmCzvNIPE,2684638
477
- lib64/libmomentum_io_urdf.a,sha256=NsSiOsNOzPCyC1ckQCm7dFojtgEjcJTvXXVpoTd_bd0,313770
478
- lib64/libmomentum_marker_tracker.a,sha256=nDEHFeNtzcV00b4rmJZ1XctwYruIp537NzmmPlzqCZ8,1963772
479
- lib64/libmomentum_math.a,sha256=UlAyp2rVZ2dllPKUEiPZ28CNJmrV1qtzLPNZK74td-8,1641786
480
- lib64/libmomentum_online_qr.a,sha256=ClkyknVqmaBTNFTmdRqtom9Wkab14EvDdez1ZV1POy8,229302
481
- lib64/libmomentum_process_markers.a,sha256=AVgQyw9RwpSOXk165nbEbS4tUIXxqW3t3GOFg-sbC38,1250318
482
- lib64/libmomentum_rerun.a,sha256=5vpsfIYJpaEBTB8Z9LRiQXzZpiHv0j--uNtvZrDK-aA,1137038
483
- lib64/libmomentum_simd_constraints.a,sha256=YoHu1ZfSUDIdyBYS1iKxqo5w01HSAC9gmXTSXgzi6vA,776086
484
- lib64/libmomentum_simd_generalized_loss.a,sha256=P5onHb9oGIzIQQyufmccYMKdgISsfiaWJqaFneAa_jc,753012
485
- lib64/libmomentum_skeleton.a,sha256=xUNZ3fyEeUrgElNEbKS0n_LoE7dyyHNxYzKkGpoHmTk,789844
486
- lib64/libmomentum_solver.a,sha256=waqGvwXf-euzt1QcUW8gmfo9Y5olDpswu01uScoLYTs,1610354
487
- lib64/cmake/axel/axel-config.cmake,sha256=gTDQ-zK9pDcMzFmSoKorPKVbCaeUhK6JVGMmui1QX64,1372
488
- lib64/cmake/axel/axelTargets-release.cmake,sha256=S6GMmgGs-IxZC0qBBz_ADcbD7GrHGS1UXSk4BLkz2JI,823
489
- lib64/cmake/axel/axelTargets.cmake,sha256=gtHQernEzZl5Kc1GmxzmFX_IXfDNhuXscPsfxzz4fkI,4231
490
- lib64/cmake/momentum/Findre2.cmake,sha256=bKFmT9xqyT87uOjOojiR3uAzIx09X1jVVtMtw8feDM4,1290
491
- lib64/cmake/momentum/momentum-config.cmake,sha256=Ma8BDkEqOBeFAuKj5HaZY8HP2_vXGfI1v3WFI325SJA,1993
492
- lib64/cmake/momentum/momentumTargets-release.cmake,sha256=1MnXwezsk-IVmp7XWZroPt-wd53biWQXOS2TMrCns_A,13517
493
- lib64/cmake/momentum/momentumTargets.cmake,sha256=-ZocI6gx3eZTRDo4Ynz5TwiFXwZOBF9JqPAtTq0Mx3c,15954
494
- pymomentum/axel.cpython-312-x86_64-linux-gnu.so,sha256=G1VS-MOVBiDFe4cxYHzcAoBlkkkb30edSyW92HM3eIE,970201
495
- pymomentum/geometry.cpython-312-x86_64-linux-gnu.so,sha256=ARzaw9cmSAfOOTDV5AgE01Cdcnzzeu-cthl4_Lv9Dzs,6421841
496
- pymomentum/marker_tracking.cpython-312-x86_64-linux-gnu.so,sha256=k4XnqajlgOu_5m-CzWrRb8pp0pLzPykWp4ZESnc6Kw8,5515697
494
+ pymomentum/axel.cpython-312-x86_64-linux-gnu.so,sha256=Lgre3gaDmhx7jMt14FQ8KN3hT6qHocTkCXlFG8yx3U4,970201
495
+ pymomentum/geometry.cpython-312-x86_64-linux-gnu.so,sha256=CV61j8YQoP1KMtzKSYSMnSvO24GsQrDCdPAPFK4HPA8,6434249
496
+ pymomentum/marker_tracking.cpython-312-x86_64-linux-gnu.so,sha256=s8wp22PhTgak5vpYVf7zYmWMAu6N0NOffgxQiXVbOkk,5511697
497
497
  pymomentum/quaternion.py,sha256=-TB1iUxcAVjntIJZW2xS8Mc2uWBUZW_M4sj-CaoMvPY,26956
498
498
  pymomentum/skel_state.py,sha256=K2WTFxudHsxR3LuE3ZT5_zzvgjEbrD5KWpWEQXOzUGY,17769
499
- pymomentum/solver.cpython-312-x86_64-linux-gnu.so,sha256=uBAxrkLT4iVZdGcipcO6fKraMIICZllpgm5u3PeHe4o,7379689
500
- pymomentum/solver2.cpython-312-x86_64-linux-gnu.so,sha256=mBS7QYScc3G64mUhDY4pOVW5jkYJfcDyHLS6WBXO-54,5480609
499
+ pymomentum/solver.cpython-312-x86_64-linux-gnu.so,sha256=P5XB0OZ39-56lD4A4inpILZGOB9roq3WezDvgre32Ls,7383785
500
+ pymomentum/solver2.cpython-312-x86_64-linux-gnu.so,sha256=l06LXpPCfuG1YhzPABtqppLXNekrgMEte1uXWELEAXY,5468225
501
501
  pymomentum/trs.py,sha256=jwvOR2DDMpAqOE9zFh0TJnigsDpfRi2guUfayQklVqk,17624
502
502
  pymomentum/backend/__init__.py,sha256=6tzrxIJl9w1eM-gqf7YwTZ33WkJ6lnq9h4-TsTuOtuc,476
503
503
  pymomentum/backend/skel_state_backend.py,sha256=tsd2iqtkbyvC7kmvZcApKGu16QbkZuEq2_ysWv6p89Y,25883
504
504
  pymomentum/backend/trs_backend.py,sha256=iJLf4wvHcpZncR3mYs9FG48KvXcuuUPdAwwBpPXEK8Q,31076
505
505
  pymomentum/backend/utils.py,sha256=YdxBRmgzJYnFY11-YCS0dYlBpw8-9qBcOUghIbvbmM8,8321
506
- pymomentum/torch/character.py,sha256=y_Ov7tkTobKdmNP1b2oNwFpPuVBUj8sRCJ7G2J5jh-s,31550
506
+ pymomentum/torch/character.py,sha256=M7fITsnVWl0h5uwuNJH5UH7VhQRtOfFL6F6-HBgOCag,33052
507
507
  pymomentum/torch/parameter_limits.py,sha256=Db89tUaJbsOjbOFqhJPFPbMPZDtErAf65ssZvxJ959c,19762
508
508
  pymomentum/torch/utility.py,sha256=_FsIVlhcQusSz_6aVLPKpRRHgSjIwmd0uCWxNVKqRtY,608
509
509
  pymomentum_cpu.libs/libabsl_base-86f3b38c.so.2505.0.0,sha256=kaihmdL_W7rqkTYkgLcJ2ZYUiTkDiwpENVlopyhHTQo,39897
@@ -545,11 +545,11 @@ pymomentum_cpu.libs/libabsl_utf8_for_code_point-de2a4d4a.so.2505.0.0,sha256=k6ny
545
545
  pymomentum_cpu.libs/libconsole_bridge-f26e11cc.so.1.0,sha256=LESGJ5BDYjZwzh0ya1edkKgxaOmbEN3kuwPXHRwJtxA,31641
546
546
  pymomentum_cpu.libs/libdeflate-577b71e3.so.0,sha256=k0lP-7Dojj9hx9cNwpNKtTFcuYv4HDNy8negVgyKmdU,104081
547
547
  pymomentum_cpu.libs/libdispenso-67ac1721.so.1.4.0,sha256=IFFamCzK4FpllpBwCYj_5murImZwgV0IhWnI5t10LWo,518977
548
- pymomentum_cpu.libs/libezc3d-4a95ab2c.so,sha256=aryLuqXyWoYK9vUVR2guVfBwnWMXInj4sHaUEPK4fko,596553
548
+ pymomentum_cpu.libs/libezc3d-48face0b.so,sha256=S2si71XxwHYx0Cor3_Rq5yLBAbUpn3o45wLqDLhoyjQ,596505
549
549
  pymomentum_cpu.libs/libre2-985fb83c.so.11,sha256=XtGXahmFHO6kV-x1ROEAdIDmcZVlWGT70joU20kCLYg,718825
550
550
  pymomentum_cpu.libs/libtinyxml2-8d10763c.so.11.0.0,sha256=KoK7Wl1HGQLMYBc4NWufsGh6RqNvjpWBQVGKqUoXgrE,163353
551
551
  pymomentum_cpu.libs/liburdfdom_model-7b26ae88.so.4.0,sha256=OTjp8aTUsvzgCy4OvW3EWM5G8JP4miw_nYc7brW3U6g,227401
552
- pymomentum_cpu-0.1.80.post0.dist-info/METADATA,sha256=6Lm5zoDX3Kgx1EG8nqFUJndbdJmILxGQDWs2A_qqGqM,5803
553
- pymomentum_cpu-0.1.80.post0.dist-info/WHEEL,sha256=w68C-P-19eefQDUkXMDbcCGbxhqYkKb22VRABwmtpZU,118
554
- pymomentum_cpu-0.1.80.post0.dist-info/RECORD,,
555
- pymomentum_cpu-0.1.80.post0.dist-info/licenses/LICENSE,sha256=2m03A-0Ry-Qr0hLHJZV8mNojy_8ZmMBfpLPZdtGljpM,1088
552
+ pymomentum_cpu-0.1.82.post0.dist-info/METADATA,sha256=P3YZoMbifOM2ELLvAZMeNR3z6JcEbVL0nD0BH3N8X6E,5809
553
+ pymomentum_cpu-0.1.82.post0.dist-info/WHEEL,sha256=w68C-P-19eefQDUkXMDbcCGbxhqYkKb22VRABwmtpZU,118
554
+ pymomentum_cpu-0.1.82.post0.dist-info/RECORD,,
555
+ pymomentum_cpu-0.1.82.post0.dist-info/licenses/LICENSE,sha256=2m03A-0Ry-Qr0hLHJZV8mNojy_8ZmMBfpLPZdtGljpM,1088
Binary file
Binary file
File without changes
File without changes
File without changes
File without changes
File without changes