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.
- include/axel/DualContouring.h +1 -1
- include/axel/MeshToSdf.h +10 -10
- include/axel/SimdKdTree.h +19 -19
- include/axel/math/CoplanarityCheck.h +4 -4
- include/axel/math/MeshHoleFilling.h +9 -9
- include/momentum/character/blend_shape.h +4 -4
- include/momentum/character/blend_shape_base.h +1 -1
- include/momentum/character/character_utility.h +1 -1
- include/momentum/character/linear_skinning.h +2 -2
- include/momentum/character/parameter_transform.h +2 -2
- include/momentum/character_sequence_solver/model_parameters_sequence_error_function.h +9 -9
- include/momentum/character_sequence_solver/multipose_solver_function.h +1 -1
- include/momentum/character_sequence_solver/sequence_error_function.h +9 -9
- include/momentum/character_sequence_solver/sequence_solver_function.h +1 -1
- include/momentum/character_sequence_solver/state_sequence_error_function.h +9 -9
- include/momentum/character_sequence_solver/vertex_sequence_error_function.h +14 -14
- include/momentum/character_solver/constraint_error_function.h +2 -2
- include/momentum/character_solver/pose_prior_error_function.h +1 -1
- include/momentum/character_solver/skeleton_solver_function.h +2 -2
- include/momentum/gui/rerun/logger.h +6 -6
- include/momentum/io/character_io.h +3 -3
- include/momentum/io/common/gsl_utils.h +2 -2
- include/momentum/io/common/stream_utils.h +4 -4
- include/momentum/io/fbx/fbx_io.h +59 -12
- include/momentum/io/fbx/fbx_memory_stream.h +3 -3
- include/momentum/io/fbx/openfbx_loader.h +10 -3
- include/momentum/io/fbx/polygon_data.h +3 -3
- include/momentum/io/gltf/gltf_builder.h +2 -2
- include/momentum/io/gltf/gltf_io.h +6 -6
- include/momentum/io/gltf/utils/accessor_utils.h +6 -6
- include/momentum/io/legacy_json/legacy_json_io.h +2 -2
- include/momentum/io/marker/marker_io.h +1 -1
- include/momentum/io/motion/mmo_io.h +7 -7
- include/momentum/io/skeleton/locator_io.h +2 -2
- include/momentum/io/skeleton/mppca_io.h +2 -2
- include/momentum/io/skeleton/parameter_transform_io.h +3 -3
- include/momentum/io/urdf/urdf_io.h +3 -3
- include/momentum/io/usd/usd_io.h +2 -2
- include/momentum/marker_tracking/app_utils.h +1 -1
- include/momentum/marker_tracking/marker_tracker.h +8 -8
- include/momentum/marker_tracking/tracker_utils.h +2 -2
- include/momentum/math/mppca.h +1 -1
- include/momentum/math/online_householder_qr.h +5 -5
- include/momentum/math/transform.h +2 -2
- include/momentum/math/types.h +10 -10
- include/momentum/math/utility.h +2 -2
- include/momentum/rasterizer/rasterizer.h +24 -24
- lib/cmake/axel/axelTargets.cmake +1 -1
- lib/libarrow.a +0 -0
- lib/libarrow_bundled_dependencies.a +0 -0
- lib/libaxel.a +0 -0
- lib/libmomentum_app_utils.a +0 -0
- lib/libmomentum_character.a +0 -0
- lib/libmomentum_character_sequence_solver.a +0 -0
- lib/libmomentum_character_solver.a +0 -0
- lib/libmomentum_common.a +0 -0
- lib/libmomentum_diff_ik.a +0 -0
- lib/libmomentum_io.a +0 -0
- lib/libmomentum_io_common.a +0 -0
- lib/libmomentum_io_fbx.a +0 -0
- lib/libmomentum_io_gltf.a +0 -0
- lib/libmomentum_io_legacy_json.a +0 -0
- lib/libmomentum_io_marker.a +0 -0
- lib/libmomentum_io_motion.a +0 -0
- lib/libmomentum_io_shape.a +0 -0
- lib/libmomentum_io_skeleton.a +0 -0
- lib/libmomentum_io_urdf.a +0 -0
- lib/libmomentum_marker_tracker.a +0 -0
- lib/libmomentum_math.a +0 -0
- lib/libmomentum_online_qr.a +0 -0
- lib/libmomentum_process_markers.a +0 -0
- lib/libmomentum_rerun.a +0 -0
- lib/libmomentum_simd_constraints.a +0 -0
- lib/libmomentum_simd_generalized_loss.a +0 -0
- lib/libmomentum_skeleton.a +0 -0
- lib/libmomentum_solver.a +0 -0
- lib/librerun_sdk.a +0 -0
- pymomentum/axel.cpython-313-darwin.so +0 -0
- pymomentum/geometry.cpython-313-darwin.so +0 -0
- pymomentum/marker_tracking.cpython-313-darwin.so +0 -0
- pymomentum/solver.cpython-313-darwin.so +0 -0
- pymomentum/solver2.cpython-313-darwin.so +0 -0
- {pymomentum_cpu-0.1.82.post0.dist-info → pymomentum_cpu-0.1.83.post0.dist-info}/METADATA +6 -4
- {pymomentum_cpu-0.1.82.post0.dist-info → pymomentum_cpu-0.1.83.post0.dist-info}/RECORD +86 -86
- {pymomentum_cpu-0.1.82.post0.dist-info → pymomentum_cpu-0.1.83.post0.dist-info}/WHEEL +0 -0
- {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 <
|
|
13
|
+
#include <span>
|
|
14
14
|
|
|
15
15
|
#include <deque>
|
|
16
16
|
#include <vector>
|
|
17
17
|
|
|
18
18
|
namespace momentum {
|
|
19
19
|
|
|
20
|
-
void validateColumnIndices(
|
|
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,
|
|
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]]
|
|
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
|
-
|
|
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
|
-
|
|
220
|
-
|
|
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>
|
include/momentum/math/types.h
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
#pragma warning(pop)
|
|
27
27
|
#endif
|
|
28
28
|
|
|
29
|
-
#include <
|
|
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 `
|
|
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 `
|
|
407
|
-
/// argument, where the template argument of `
|
|
408
|
-
/// deduction of the `
|
|
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 `
|
|
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
|
|
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 `
|
|
423
|
-
/// immutable view is needed, consider using `
|
|
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 =
|
|
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.
|
include/momentum/math/utility.h
CHANGED
|
@@ -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
|
-
|
|
212
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
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
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
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
|
-
|
|
422
|
-
|
|
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(
|
|
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
|
-
|
|
477
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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,...)
|
lib/cmake/axel/axelTargets.cmake
CHANGED
|
@@ -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 "
|
|
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
|
lib/libmomentum_app_utils.a
CHANGED
|
Binary file
|
lib/libmomentum_character.a
CHANGED
|
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
|
lib/libmomentum_io_common.a
CHANGED
|
Binary file
|
lib/libmomentum_io_fbx.a
CHANGED
|
Binary file
|
lib/libmomentum_io_gltf.a
CHANGED
|
Binary file
|
lib/libmomentum_io_legacy_json.a
CHANGED
|
Binary file
|
lib/libmomentum_io_marker.a
CHANGED
|
Binary file
|
lib/libmomentum_io_motion.a
CHANGED
|
Binary file
|
lib/libmomentum_io_shape.a
CHANGED
|
Binary file
|
lib/libmomentum_io_skeleton.a
CHANGED
|
Binary file
|
lib/libmomentum_io_urdf.a
CHANGED
|
Binary file
|
lib/libmomentum_marker_tracker.a
CHANGED
|
Binary file
|
lib/libmomentum_math.a
CHANGED
|
Binary file
|
lib/libmomentum_online_qr.a
CHANGED
|
Binary file
|
|
Binary file
|
lib/libmomentum_rerun.a
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
lib/libmomentum_skeleton.a
CHANGED
|
Binary file
|
lib/libmomentum_solver.a
CHANGED
|
Binary file
|
lib/librerun_sdk.a
CHANGED
|
Binary file
|
|
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.
|
|
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
|
-
|
|
71
|
-
|
|
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
|