pymomentum-cpu 0.1.82.post0__cp312-cp312-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 (512) hide show
  1. include/axel/BoundingBox.h +58 -0
  2. include/axel/Bvh.h +708 -0
  3. include/axel/BvhBase.h +75 -0
  4. include/axel/BvhCommon.h +43 -0
  5. include/axel/BvhEmbree.h +86 -0
  6. include/axel/BvhFactory.h +34 -0
  7. include/axel/Checks.h +21 -0
  8. include/axel/DualContouring.h +79 -0
  9. include/axel/KdTree.h +199 -0
  10. include/axel/Log.h +22 -0
  11. include/axel/MeshToSdf.h +123 -0
  12. include/axel/Profile.h +64 -0
  13. include/axel/Ray.h +45 -0
  14. include/axel/SignedDistanceField.h +248 -0
  15. include/axel/SimdKdTree.h +515 -0
  16. include/axel/TriBvh.h +157 -0
  17. include/axel/TriBvhEmbree.h +57 -0
  18. include/axel/common/Constants.h +27 -0
  19. include/axel/common/Types.h +21 -0
  20. include/axel/common/VectorizationTypes.h +58 -0
  21. include/axel/math/BoundingBoxUtils.h +54 -0
  22. include/axel/math/ContinuousCollisionDetection.h +48 -0
  23. include/axel/math/CoplanarityCheck.h +30 -0
  24. include/axel/math/EdgeEdgeDistance.h +31 -0
  25. include/axel/math/MeshHoleFilling.h +117 -0
  26. include/axel/math/PointTriangleProjection.h +34 -0
  27. include/axel/math/PointTriangleProjectionDefinitions.h +209 -0
  28. include/axel/math/RayTriangleIntersection.h +36 -0
  29. include/momentum/character/blend_shape.h +91 -0
  30. include/momentum/character/blend_shape_base.h +70 -0
  31. include/momentum/character/blend_shape_skinning.h +96 -0
  32. include/momentum/character/character.h +272 -0
  33. include/momentum/character/character_state.h +108 -0
  34. include/momentum/character/character_utility.h +128 -0
  35. include/momentum/character/collision_geometry.h +80 -0
  36. include/momentum/character/collision_geometry_state.h +130 -0
  37. include/momentum/character/fwd.h +262 -0
  38. include/momentum/character/inverse_parameter_transform.h +58 -0
  39. include/momentum/character/joint.h +82 -0
  40. include/momentum/character/joint_state.h +241 -0
  41. include/momentum/character/linear_skinning.h +139 -0
  42. include/momentum/character/locator.h +82 -0
  43. include/momentum/character/locator_state.h +43 -0
  44. include/momentum/character/marker.h +48 -0
  45. include/momentum/character/mesh_state.h +71 -0
  46. include/momentum/character/parameter_limits.h +144 -0
  47. include/momentum/character/parameter_transform.h +250 -0
  48. include/momentum/character/pose_shape.h +65 -0
  49. include/momentum/character/skeleton.h +85 -0
  50. include/momentum/character/skeleton_state.h +181 -0
  51. include/momentum/character/skeleton_utility.h +38 -0
  52. include/momentum/character/skin_weights.h +67 -0
  53. include/momentum/character/skinned_locator.h +80 -0
  54. include/momentum/character/types.h +202 -0
  55. include/momentum/character_sequence_solver/fwd.h +200 -0
  56. include/momentum/character_sequence_solver/model_parameters_sequence_error_function.h +65 -0
  57. include/momentum/character_sequence_solver/multipose_solver.h +65 -0
  58. include/momentum/character_sequence_solver/multipose_solver_function.h +82 -0
  59. include/momentum/character_sequence_solver/sequence_error_function.h +104 -0
  60. include/momentum/character_sequence_solver/sequence_solver.h +144 -0
  61. include/momentum/character_sequence_solver/sequence_solver_function.h +134 -0
  62. include/momentum/character_sequence_solver/state_sequence_error_function.h +109 -0
  63. include/momentum/character_sequence_solver/vertex_sequence_error_function.h +123 -0
  64. include/momentum/character_solver/aim_error_function.h +112 -0
  65. include/momentum/character_solver/collision_error_function.h +92 -0
  66. include/momentum/character_solver/collision_error_function_stateless.h +75 -0
  67. include/momentum/character_solver/constraint_error_function-inl.h +324 -0
  68. include/momentum/character_solver/constraint_error_function.h +248 -0
  69. include/momentum/character_solver/distance_error_function.h +77 -0
  70. include/momentum/character_solver/error_function_utils.h +60 -0
  71. include/momentum/character_solver/fixed_axis_error_function.h +139 -0
  72. include/momentum/character_solver/fwd.h +924 -0
  73. include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
  74. include/momentum/character_solver/limit_error_function.h +57 -0
  75. include/momentum/character_solver/model_parameters_error_function.h +64 -0
  76. include/momentum/character_solver/normal_error_function.h +73 -0
  77. include/momentum/character_solver/orientation_error_function.h +74 -0
  78. include/momentum/character_solver/plane_error_function.h +102 -0
  79. include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
  80. include/momentum/character_solver/pose_prior_error_function.h +80 -0
  81. include/momentum/character_solver/position_error_function.h +75 -0
  82. include/momentum/character_solver/projection_error_function.h +93 -0
  83. include/momentum/character_solver/simd_collision_error_function.h +99 -0
  84. include/momentum/character_solver/simd_normal_error_function.h +157 -0
  85. include/momentum/character_solver/simd_plane_error_function.h +164 -0
  86. include/momentum/character_solver/simd_position_error_function.h +165 -0
  87. include/momentum/character_solver/skeleton_error_function.h +151 -0
  88. include/momentum/character_solver/skeleton_solver_function.h +94 -0
  89. include/momentum/character_solver/skinned_locator_error_function.h +166 -0
  90. include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
  91. include/momentum/character_solver/skinning_weight_iterator.h +80 -0
  92. include/momentum/character_solver/state_error_function.h +94 -0
  93. include/momentum/character_solver/transform_pose.h +80 -0
  94. include/momentum/character_solver/trust_region_qr.h +80 -0
  95. include/momentum/character_solver/vertex_error_function.h +155 -0
  96. include/momentum/character_solver/vertex_projection_error_function.h +117 -0
  97. include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -0
  98. include/momentum/common/aligned.h +155 -0
  99. include/momentum/common/checks.h +27 -0
  100. include/momentum/common/exception.h +70 -0
  101. include/momentum/common/filesystem.h +20 -0
  102. include/momentum/common/fwd.h +27 -0
  103. include/momentum/common/log.h +173 -0
  104. include/momentum/common/log_channel.h +17 -0
  105. include/momentum/common/memory.h +71 -0
  106. include/momentum/common/profile.h +79 -0
  107. include/momentum/common/progress_bar.h +37 -0
  108. include/momentum/common/string.h +52 -0
  109. include/momentum/diff_ik/ceres_utility.h +73 -0
  110. include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
  111. include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
  112. include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
  113. include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
  114. include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
  115. include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
  116. include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
  117. include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
  118. include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
  119. include/momentum/diff_ik/fwd.h +385 -0
  120. include/momentum/diff_ik/union_error_function.h +67 -0
  121. include/momentum/gui/rerun/eigen_adapters.h +70 -0
  122. include/momentum/gui/rerun/logger.h +102 -0
  123. include/momentum/gui/rerun/logging_redirect.h +27 -0
  124. include/momentum/io/character_io.h +56 -0
  125. include/momentum/io/common/gsl_utils.h +50 -0
  126. include/momentum/io/common/stream_utils.h +65 -0
  127. include/momentum/io/fbx/fbx_io.h +109 -0
  128. include/momentum/io/fbx/fbx_memory_stream.h +66 -0
  129. include/momentum/io/fbx/openfbx_loader.h +49 -0
  130. include/momentum/io/fbx/polygon_data.h +60 -0
  131. include/momentum/io/gltf/gltf_builder.h +132 -0
  132. include/momentum/io/gltf/gltf_file_format.h +19 -0
  133. include/momentum/io/gltf/gltf_io.h +148 -0
  134. include/momentum/io/gltf/utils/accessor_utils.h +299 -0
  135. include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
  136. include/momentum/io/gltf/utils/json_utils.h +102 -0
  137. include/momentum/io/legacy_json/legacy_json_io.h +70 -0
  138. include/momentum/io/marker/c3d_io.h +30 -0
  139. include/momentum/io/marker/conversions.h +57 -0
  140. include/momentum/io/marker/coordinate_system.h +30 -0
  141. include/momentum/io/marker/marker_io.h +56 -0
  142. include/momentum/io/marker/trc_io.h +27 -0
  143. include/momentum/io/motion/mmo_io.h +97 -0
  144. include/momentum/io/shape/blend_shape_io.h +70 -0
  145. include/momentum/io/shape/pose_shape_io.h +21 -0
  146. include/momentum/io/skeleton/locator_io.h +41 -0
  147. include/momentum/io/skeleton/mppca_io.h +26 -0
  148. include/momentum/io/skeleton/parameter_limits_io.h +25 -0
  149. include/momentum/io/skeleton/parameter_transform_io.h +41 -0
  150. include/momentum/io/skeleton/parameters_io.h +20 -0
  151. include/momentum/io/urdf/urdf_io.h +26 -0
  152. include/momentum/io/usd/usd_io.h +36 -0
  153. include/momentum/marker_tracking/app_utils.h +62 -0
  154. include/momentum/marker_tracking/marker_tracker.h +213 -0
  155. include/momentum/marker_tracking/process_markers.h +58 -0
  156. include/momentum/marker_tracking/tracker_utils.h +90 -0
  157. include/momentum/math/constants.h +82 -0
  158. include/momentum/math/covariance_matrix.h +84 -0
  159. include/momentum/math/fmt_eigen.h +23 -0
  160. include/momentum/math/fwd.h +132 -0
  161. include/momentum/math/generalized_loss.h +61 -0
  162. include/momentum/math/intersection.h +32 -0
  163. include/momentum/math/mesh.h +84 -0
  164. include/momentum/math/mppca.h +67 -0
  165. include/momentum/math/online_householder_qr.h +516 -0
  166. include/momentum/math/random-inl.h +404 -0
  167. include/momentum/math/random.h +310 -0
  168. include/momentum/math/simd_generalized_loss.h +40 -0
  169. include/momentum/math/transform.h +229 -0
  170. include/momentum/math/types.h +461 -0
  171. include/momentum/math/utility.h +251 -0
  172. include/momentum/rasterizer/camera.h +453 -0
  173. include/momentum/rasterizer/fwd.h +102 -0
  174. include/momentum/rasterizer/geometry.h +83 -0
  175. include/momentum/rasterizer/image.h +18 -0
  176. include/momentum/rasterizer/rasterizer.h +583 -0
  177. include/momentum/rasterizer/tensor.h +140 -0
  178. include/momentum/rasterizer/utility.h +268 -0
  179. include/momentum/simd/simd.h +221 -0
  180. include/momentum/solver/fwd.h +131 -0
  181. include/momentum/solver/gauss_newton_solver.h +136 -0
  182. include/momentum/solver/gradient_descent_solver.h +65 -0
  183. include/momentum/solver/solver.h +155 -0
  184. include/momentum/solver/solver_function.h +126 -0
  185. include/momentum/solver/subset_gauss_newton_solver.h +109 -0
  186. include/rerun/archetypes/annotation_context.hpp +157 -0
  187. include/rerun/archetypes/arrows2d.hpp +271 -0
  188. include/rerun/archetypes/arrows3d.hpp +257 -0
  189. include/rerun/archetypes/asset3d.hpp +262 -0
  190. include/rerun/archetypes/asset_video.hpp +275 -0
  191. include/rerun/archetypes/bar_chart.hpp +261 -0
  192. include/rerun/archetypes/boxes2d.hpp +293 -0
  193. include/rerun/archetypes/boxes3d.hpp +369 -0
  194. include/rerun/archetypes/capsules3d.hpp +333 -0
  195. include/rerun/archetypes/clear.hpp +180 -0
  196. include/rerun/archetypes/depth_image.hpp +425 -0
  197. include/rerun/archetypes/ellipsoids3d.hpp +384 -0
  198. include/rerun/archetypes/encoded_image.hpp +250 -0
  199. include/rerun/archetypes/geo_line_strings.hpp +166 -0
  200. include/rerun/archetypes/geo_points.hpp +177 -0
  201. include/rerun/archetypes/graph_edges.hpp +152 -0
  202. include/rerun/archetypes/graph_nodes.hpp +206 -0
  203. include/rerun/archetypes/image.hpp +434 -0
  204. include/rerun/archetypes/instance_poses3d.hpp +221 -0
  205. include/rerun/archetypes/line_strips2d.hpp +289 -0
  206. include/rerun/archetypes/line_strips3d.hpp +270 -0
  207. include/rerun/archetypes/mesh3d.hpp +387 -0
  208. include/rerun/archetypes/pinhole.hpp +385 -0
  209. include/rerun/archetypes/points2d.hpp +333 -0
  210. include/rerun/archetypes/points3d.hpp +369 -0
  211. include/rerun/archetypes/recording_properties.hpp +132 -0
  212. include/rerun/archetypes/scalar.hpp +170 -0
  213. include/rerun/archetypes/scalars.hpp +153 -0
  214. include/rerun/archetypes/segmentation_image.hpp +305 -0
  215. include/rerun/archetypes/series_line.hpp +274 -0
  216. include/rerun/archetypes/series_lines.hpp +271 -0
  217. include/rerun/archetypes/series_point.hpp +265 -0
  218. include/rerun/archetypes/series_points.hpp +251 -0
  219. include/rerun/archetypes/tensor.hpp +213 -0
  220. include/rerun/archetypes/text_document.hpp +200 -0
  221. include/rerun/archetypes/text_log.hpp +211 -0
  222. include/rerun/archetypes/transform3d.hpp +925 -0
  223. include/rerun/archetypes/video_frame_reference.hpp +295 -0
  224. include/rerun/archetypes/view_coordinates.hpp +393 -0
  225. include/rerun/archetypes.hpp +43 -0
  226. include/rerun/arrow_utils.hpp +32 -0
  227. include/rerun/as_components.hpp +90 -0
  228. include/rerun/blueprint/archetypes/background.hpp +113 -0
  229. include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
  230. include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
  231. include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
  232. include/rerun/blueprint/archetypes/force_center.hpp +115 -0
  233. include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
  234. include/rerun/blueprint/archetypes/force_link.hpp +136 -0
  235. include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
  236. include/rerun/blueprint/archetypes/force_position.hpp +132 -0
  237. include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
  238. include/rerun/blueprint/archetypes/map_background.hpp +104 -0
  239. include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
  240. include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
  241. include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
  242. include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
  243. include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
  244. include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
  245. include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
  246. include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
  247. include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
  248. include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
  249. include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
  250. include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
  251. include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
  252. include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
  253. include/rerun/blueprint/archetypes.hpp +29 -0
  254. include/rerun/blueprint/components/active_tab.hpp +82 -0
  255. include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
  256. include/rerun/blueprint/components/auto_layout.hpp +77 -0
  257. include/rerun/blueprint/components/auto_views.hpp +77 -0
  258. include/rerun/blueprint/components/background_kind.hpp +66 -0
  259. include/rerun/blueprint/components/column_share.hpp +78 -0
  260. include/rerun/blueprint/components/component_column_selector.hpp +81 -0
  261. include/rerun/blueprint/components/container_kind.hpp +65 -0
  262. include/rerun/blueprint/components/corner2d.hpp +64 -0
  263. include/rerun/blueprint/components/enabled.hpp +77 -0
  264. include/rerun/blueprint/components/filter_by_range.hpp +74 -0
  265. include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
  266. include/rerun/blueprint/components/force_distance.hpp +82 -0
  267. include/rerun/blueprint/components/force_iterations.hpp +82 -0
  268. include/rerun/blueprint/components/force_strength.hpp +82 -0
  269. include/rerun/blueprint/components/grid_columns.hpp +78 -0
  270. include/rerun/blueprint/components/grid_spacing.hpp +78 -0
  271. include/rerun/blueprint/components/included_content.hpp +86 -0
  272. include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
  273. include/rerun/blueprint/components/map_provider.hpp +64 -0
  274. include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
  275. include/rerun/blueprint/components/panel_state.hpp +61 -0
  276. include/rerun/blueprint/components/query_expression.hpp +89 -0
  277. include/rerun/blueprint/components/root_container.hpp +77 -0
  278. include/rerun/blueprint/components/row_share.hpp +78 -0
  279. include/rerun/blueprint/components/selected_columns.hpp +76 -0
  280. include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
  281. include/rerun/blueprint/components/timeline_name.hpp +76 -0
  282. include/rerun/blueprint/components/view_class.hpp +76 -0
  283. include/rerun/blueprint/components/view_fit.hpp +61 -0
  284. include/rerun/blueprint/components/view_maximized.hpp +79 -0
  285. include/rerun/blueprint/components/view_origin.hpp +81 -0
  286. include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
  287. include/rerun/blueprint/components/visible_time_range.hpp +77 -0
  288. include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
  289. include/rerun/blueprint/components/visualizer_override.hpp +86 -0
  290. include/rerun/blueprint/components/zoom_level.hpp +78 -0
  291. include/rerun/blueprint/components.hpp +41 -0
  292. include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
  293. include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
  294. include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
  295. include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
  296. include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
  297. include/rerun/blueprint/datatypes.hpp +9 -0
  298. include/rerun/c/arrow_c_data_interface.h +111 -0
  299. include/rerun/c/compiler_utils.h +10 -0
  300. include/rerun/c/rerun.h +627 -0
  301. include/rerun/c/sdk_info.h +28 -0
  302. include/rerun/collection.hpp +496 -0
  303. include/rerun/collection_adapter.hpp +43 -0
  304. include/rerun/collection_adapter_builtins.hpp +138 -0
  305. include/rerun/compiler_utils.hpp +61 -0
  306. include/rerun/component_batch.hpp +163 -0
  307. include/rerun/component_column.hpp +111 -0
  308. include/rerun/component_descriptor.hpp +142 -0
  309. include/rerun/component_type.hpp +35 -0
  310. include/rerun/components/aggregation_policy.hpp +76 -0
  311. include/rerun/components/albedo_factor.hpp +74 -0
  312. include/rerun/components/annotation_context.hpp +102 -0
  313. include/rerun/components/axis_length.hpp +74 -0
  314. include/rerun/components/blob.hpp +73 -0
  315. include/rerun/components/class_id.hpp +71 -0
  316. include/rerun/components/clear_is_recursive.hpp +75 -0
  317. include/rerun/components/color.hpp +99 -0
  318. include/rerun/components/colormap.hpp +99 -0
  319. include/rerun/components/depth_meter.hpp +84 -0
  320. include/rerun/components/draw_order.hpp +79 -0
  321. include/rerun/components/entity_path.hpp +83 -0
  322. include/rerun/components/fill_mode.hpp +72 -0
  323. include/rerun/components/fill_ratio.hpp +79 -0
  324. include/rerun/components/gamma_correction.hpp +80 -0
  325. include/rerun/components/geo_line_string.hpp +63 -0
  326. include/rerun/components/graph_edge.hpp +75 -0
  327. include/rerun/components/graph_node.hpp +79 -0
  328. include/rerun/components/graph_type.hpp +57 -0
  329. include/rerun/components/half_size2d.hpp +91 -0
  330. include/rerun/components/half_size3d.hpp +95 -0
  331. include/rerun/components/image_buffer.hpp +86 -0
  332. include/rerun/components/image_format.hpp +84 -0
  333. include/rerun/components/image_plane_distance.hpp +77 -0
  334. include/rerun/components/interactive.hpp +76 -0
  335. include/rerun/components/keypoint_id.hpp +74 -0
  336. include/rerun/components/lat_lon.hpp +89 -0
  337. include/rerun/components/length.hpp +77 -0
  338. include/rerun/components/line_strip2d.hpp +73 -0
  339. include/rerun/components/line_strip3d.hpp +73 -0
  340. include/rerun/components/magnification_filter.hpp +63 -0
  341. include/rerun/components/marker_shape.hpp +82 -0
  342. include/rerun/components/marker_size.hpp +74 -0
  343. include/rerun/components/media_type.hpp +157 -0
  344. include/rerun/components/name.hpp +83 -0
  345. include/rerun/components/opacity.hpp +77 -0
  346. include/rerun/components/pinhole_projection.hpp +94 -0
  347. include/rerun/components/plane3d.hpp +75 -0
  348. include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
  349. include/rerun/components/pose_rotation_quat.hpp +71 -0
  350. include/rerun/components/pose_scale3d.hpp +102 -0
  351. include/rerun/components/pose_transform_mat3x3.hpp +87 -0
  352. include/rerun/components/pose_translation3d.hpp +96 -0
  353. include/rerun/components/position2d.hpp +86 -0
  354. include/rerun/components/position3d.hpp +90 -0
  355. include/rerun/components/radius.hpp +98 -0
  356. include/rerun/components/range1d.hpp +75 -0
  357. include/rerun/components/resolution.hpp +88 -0
  358. include/rerun/components/rotation_axis_angle.hpp +72 -0
  359. include/rerun/components/rotation_quat.hpp +71 -0
  360. include/rerun/components/scalar.hpp +76 -0
  361. include/rerun/components/scale3d.hpp +102 -0
  362. include/rerun/components/series_visible.hpp +76 -0
  363. include/rerun/components/show_labels.hpp +79 -0
  364. include/rerun/components/stroke_width.hpp +74 -0
  365. include/rerun/components/tensor_data.hpp +94 -0
  366. include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
  367. include/rerun/components/tensor_height_dimension.hpp +71 -0
  368. include/rerun/components/tensor_width_dimension.hpp +71 -0
  369. include/rerun/components/texcoord2d.hpp +101 -0
  370. include/rerun/components/text.hpp +83 -0
  371. include/rerun/components/text_log_level.hpp +110 -0
  372. include/rerun/components/timestamp.hpp +76 -0
  373. include/rerun/components/transform_mat3x3.hpp +92 -0
  374. include/rerun/components/transform_relation.hpp +66 -0
  375. include/rerun/components/translation3d.hpp +96 -0
  376. include/rerun/components/triangle_indices.hpp +85 -0
  377. include/rerun/components/value_range.hpp +78 -0
  378. include/rerun/components/vector2d.hpp +92 -0
  379. include/rerun/components/vector3d.hpp +96 -0
  380. include/rerun/components/video_timestamp.hpp +120 -0
  381. include/rerun/components/view_coordinates.hpp +346 -0
  382. include/rerun/components/visible.hpp +74 -0
  383. include/rerun/components.hpp +77 -0
  384. include/rerun/config.hpp +52 -0
  385. include/rerun/datatypes/angle.hpp +76 -0
  386. include/rerun/datatypes/annotation_info.hpp +76 -0
  387. include/rerun/datatypes/blob.hpp +67 -0
  388. include/rerun/datatypes/bool.hpp +57 -0
  389. include/rerun/datatypes/channel_datatype.hpp +87 -0
  390. include/rerun/datatypes/class_description.hpp +92 -0
  391. include/rerun/datatypes/class_description_map_elem.hpp +69 -0
  392. include/rerun/datatypes/class_id.hpp +62 -0
  393. include/rerun/datatypes/color_model.hpp +68 -0
  394. include/rerun/datatypes/dvec2d.hpp +76 -0
  395. include/rerun/datatypes/entity_path.hpp +60 -0
  396. include/rerun/datatypes/float32.hpp +62 -0
  397. include/rerun/datatypes/float64.hpp +62 -0
  398. include/rerun/datatypes/image_format.hpp +107 -0
  399. include/rerun/datatypes/keypoint_id.hpp +63 -0
  400. include/rerun/datatypes/keypoint_pair.hpp +65 -0
  401. include/rerun/datatypes/mat3x3.hpp +105 -0
  402. include/rerun/datatypes/mat4x4.hpp +119 -0
  403. include/rerun/datatypes/pixel_format.hpp +142 -0
  404. include/rerun/datatypes/plane3d.hpp +60 -0
  405. include/rerun/datatypes/quaternion.hpp +110 -0
  406. include/rerun/datatypes/range1d.hpp +59 -0
  407. include/rerun/datatypes/range2d.hpp +55 -0
  408. include/rerun/datatypes/rgba32.hpp +94 -0
  409. include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
  410. include/rerun/datatypes/tensor_buffer.hpp +529 -0
  411. include/rerun/datatypes/tensor_data.hpp +100 -0
  412. include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
  413. include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
  414. include/rerun/datatypes/time_int.hpp +62 -0
  415. include/rerun/datatypes/time_range.hpp +55 -0
  416. include/rerun/datatypes/time_range_boundary.hpp +175 -0
  417. include/rerun/datatypes/uint16.hpp +62 -0
  418. include/rerun/datatypes/uint32.hpp +62 -0
  419. include/rerun/datatypes/uint64.hpp +62 -0
  420. include/rerun/datatypes/utf8.hpp +76 -0
  421. include/rerun/datatypes/utf8pair.hpp +62 -0
  422. include/rerun/datatypes/uuid.hpp +60 -0
  423. include/rerun/datatypes/uvec2d.hpp +76 -0
  424. include/rerun/datatypes/uvec3d.hpp +80 -0
  425. include/rerun/datatypes/uvec4d.hpp +59 -0
  426. include/rerun/datatypes/vec2d.hpp +76 -0
  427. include/rerun/datatypes/vec3d.hpp +80 -0
  428. include/rerun/datatypes/vec4d.hpp +84 -0
  429. include/rerun/datatypes/video_timestamp.hpp +67 -0
  430. include/rerun/datatypes/view_coordinates.hpp +87 -0
  431. include/rerun/datatypes/visible_time_range.hpp +57 -0
  432. include/rerun/datatypes.hpp +51 -0
  433. include/rerun/demo_utils.hpp +75 -0
  434. include/rerun/entity_path.hpp +20 -0
  435. include/rerun/error.hpp +180 -0
  436. include/rerun/half.hpp +10 -0
  437. include/rerun/image_utils.hpp +187 -0
  438. include/rerun/indicator_component.hpp +59 -0
  439. include/rerun/loggable.hpp +54 -0
  440. include/rerun/recording_stream.hpp +960 -0
  441. include/rerun/rerun_sdk_export.hpp +25 -0
  442. include/rerun/result.hpp +86 -0
  443. include/rerun/rotation3d.hpp +33 -0
  444. include/rerun/sdk_info.hpp +20 -0
  445. include/rerun/spawn.hpp +21 -0
  446. include/rerun/spawn_options.hpp +57 -0
  447. include/rerun/string_utils.hpp +16 -0
  448. include/rerun/third_party/cxxopts.hpp +2198 -0
  449. include/rerun/time_column.hpp +288 -0
  450. include/rerun/timeline.hpp +38 -0
  451. include/rerun/type_traits.hpp +40 -0
  452. include/rerun.hpp +86 -0
  453. lib/cmake/axel/axel-config.cmake +45 -0
  454. lib/cmake/axel/axelTargets-release.cmake +19 -0
  455. lib/cmake/axel/axelTargets.cmake +108 -0
  456. lib/cmake/momentum/Findre2.cmake +52 -0
  457. lib/cmake/momentum/momentum-config.cmake +67 -0
  458. lib/cmake/momentum/momentumTargets-release.cmake +259 -0
  459. lib/cmake/momentum/momentumTargets.cmake +377 -0
  460. lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
  461. lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
  462. lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
  463. lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
  464. lib/libarrow.a +0 -0
  465. lib/libarrow_bundled_dependencies.a +0 -0
  466. lib/libaxel.a +0 -0
  467. lib/libmomentum_app_utils.a +0 -0
  468. lib/libmomentum_character.a +0 -0
  469. lib/libmomentum_character_sequence_solver.a +0 -0
  470. lib/libmomentum_character_solver.a +0 -0
  471. lib/libmomentum_common.a +0 -0
  472. lib/libmomentum_diff_ik.a +0 -0
  473. lib/libmomentum_io.a +0 -0
  474. lib/libmomentum_io_common.a +0 -0
  475. lib/libmomentum_io_fbx.a +0 -0
  476. lib/libmomentum_io_gltf.a +0 -0
  477. lib/libmomentum_io_legacy_json.a +0 -0
  478. lib/libmomentum_io_marker.a +0 -0
  479. lib/libmomentum_io_motion.a +0 -0
  480. lib/libmomentum_io_shape.a +0 -0
  481. lib/libmomentum_io_skeleton.a +0 -0
  482. lib/libmomentum_io_urdf.a +0 -0
  483. lib/libmomentum_marker_tracker.a +0 -0
  484. lib/libmomentum_math.a +0 -0
  485. lib/libmomentum_online_qr.a +0 -0
  486. lib/libmomentum_process_markers.a +0 -0
  487. lib/libmomentum_rerun.a +0 -0
  488. lib/libmomentum_simd_constraints.a +0 -0
  489. lib/libmomentum_simd_generalized_loss.a +0 -0
  490. lib/libmomentum_skeleton.a +0 -0
  491. lib/libmomentum_solver.a +0 -0
  492. lib/librerun_c__macos_arm64.a +0 -0
  493. lib/librerun_sdk.a +0 -0
  494. pymomentum/axel.cpython-312-darwin.so +0 -0
  495. pymomentum/backend/__init__.py +16 -0
  496. pymomentum/backend/skel_state_backend.py +614 -0
  497. pymomentum/backend/trs_backend.py +871 -0
  498. pymomentum/backend/utils.py +224 -0
  499. pymomentum/geometry.cpython-312-darwin.so +0 -0
  500. pymomentum/marker_tracking.cpython-312-darwin.so +0 -0
  501. pymomentum/quaternion.py +740 -0
  502. pymomentum/skel_state.py +514 -0
  503. pymomentum/solver.cpython-312-darwin.so +0 -0
  504. pymomentum/solver2.cpython-312-darwin.so +0 -0
  505. pymomentum/torch/character.py +856 -0
  506. pymomentum/torch/parameter_limits.py +494 -0
  507. pymomentum/torch/utility.py +20 -0
  508. pymomentum/trs.py +535 -0
  509. pymomentum_cpu-0.1.82.post0.dist-info/METADATA +121 -0
  510. pymomentum_cpu-0.1.82.post0.dist-info/RECORD +512 -0
  511. pymomentum_cpu-0.1.82.post0.dist-info/WHEEL +5 -0
  512. pymomentum_cpu-0.1.82.post0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/marker.h>
11
+ #include <momentum/io/marker/coordinate_system.h>
12
+
13
+ namespace momentum {
14
+
15
+ /// Loads all the subjects from a C3D file into a vector of MarkerSequences.
16
+ ///
17
+ /// The function reads the given C3D file and stores the marker data as a MarkerSequence. The unit
18
+ /// of the input file will be read from the file and converted to the momentum unit (i.e., cm). The
19
+ /// UpVector parameter 'up' is the up-vector convention of the input marker file.
20
+ ///
21
+ /// @param[in] filename The C3D file to load marker data from.
22
+ /// @param[in] up (Optional) The up-vector convention of the input marker file (default:
23
+ /// UpVector::Y).
24
+ /// @return std::vector<MarkerSequence> A vector containing the marker sequences from the C3D file.
25
+ [[nodiscard]] std::vector<MarkerSequence> loadC3d(
26
+ const std::string& filename,
27
+ UpVector up = UpVector::Y,
28
+ std::span<const std::string> validMarkerNames = {});
29
+
30
+ } // namespace momentum
@@ -0,0 +1,57 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/io/marker/coordinate_system.h>
11
+ #include <momentum/math/types.h>
12
+
13
+ namespace momentum {
14
+
15
+ /// @brief This function converts a 3D vector in the mocap marker coordinate system to the Momentum
16
+ /// coordinate system.
17
+ ///
18
+ /// The mocap marker coordinate system uses a spatial index with a specified up-axis (default Z),
19
+ /// right-handedness, and units specified in the 'unit' parameter (default millimeters). The
20
+ /// Momentum coordinate system uses a spatial index with Y as the up-axis, right-handedness, and
21
+ /// units in centimeters.
22
+ ///
23
+ /// @tparam T The numeric type of the input and output 3D vectors.
24
+ /// @param[in] vec The 3D vector in the mocap marker coordinate system to be converted.
25
+ /// @param[in] up (Optional) The up-axis convention of the input marker coordinate system (default:
26
+ /// UpVector::Z).
27
+ /// @param[in] unit (Optional) The units of measurement used in the input marker coordinate system
28
+ /// (default: Unit::MM).
29
+ /// @returns A 3D vector in the Momentum coordinate system.
30
+ ///
31
+ /// @note This conversion has only been tested for TRC and C3D formats.
32
+ template <typename T>
33
+ [[nodiscard]] Vector3<T>
34
+ toMomentumVector3(const Vector3<T>& vec, UpVector up = UpVector::Z, Unit unit = Unit::MM);
35
+
36
+ /// @brief This function converts a 3D vector in the mocap marker coordinate system to the Momentum
37
+ /// coordinate system, using a string to specify the unit.
38
+ ///
39
+ /// The mocap marker coordinate system uses a spatial index with a specified up-axis (default Z),
40
+ /// right-handedness, and units specified in the 'unitStr' parameter (e.g., "m", "cm", "mm"). The
41
+ /// Momentum coordinate system uses a spatial index with Y as the up-axis, right-handedness, and
42
+ /// units in centimeters.
43
+ ///
44
+ /// @tparam T The numeric type of the input and output 3D vectors.
45
+ /// @param[in] vec The 3D vector in the mocap marker coordinate system to be converted.
46
+ /// @param[in] up (Optional) The up-axis convention of the input marker coordinate system (default:
47
+ /// UpVector::Z).
48
+ /// @param[in] unitStr The string representation of the units of measurement used in the input
49
+ /// marker coordinate system.
50
+ /// @returns A 3D vector in the Momentum coordinate system.
51
+ ///
52
+ /// @note This conversion has only been tested for TRC and C3D formats.
53
+ template <typename T>
54
+ [[nodiscard]] Vector3<T>
55
+ toMomentumVector3(const Vector3<T>& vec, UpVector up, const std::string& unitStr);
56
+
57
+ } // namespace momentum
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ namespace momentum {
11
+
12
+ /// This enumeration is used to define the primary up vector directions for various coordinate
13
+ /// systems and orientations in a 3D environment.
14
+ enum class UpVector {
15
+ X = 0, ///< X-axis up vector
16
+ Y, ///< Y-axis up vector
17
+ Z, ///< Z-axis up vector
18
+ YNeg, ///< Negative Y-axis up vector
19
+ };
20
+
21
+ /// An enumeration representing the units of measurement used in marker data files.
22
+ enum class Unit {
23
+ M, ///< Meters
24
+ DM, ///< Decimeter
25
+ CM, ///< Centimeters
26
+ MM, ///< Millimeters
27
+ Unknown, ///< Unknown unit of measurement
28
+ };
29
+
30
+ } // namespace momentum
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/marker.h>
11
+ #include <momentum/io/marker/coordinate_system.h>
12
+
13
+ #include <optional>
14
+ #include <vector>
15
+
16
+ namespace momentum {
17
+
18
+ /// Loads all actor sequences from a marker file (c3d, trc, glb) and converts the positions
19
+ /// to the target coordinate system. Default target coordinate system is: (Y-up, right-handed,
20
+ /// centimeter units).
21
+ ///
22
+ /// @param[in] filename The marker file to load data from.
23
+ /// @param[in] up (Optional) The up-vector convention of the input marker file (default:
24
+ /// UpVector::Y).
25
+ /// @return std::vector<MarkerSequence> A vector of MarkerSequences containing the marker data from
26
+ /// the file.
27
+ [[nodiscard]] std::vector<MarkerSequence> loadMarkers(
28
+ const std::string& filename,
29
+ UpVector up = UpVector::Y,
30
+ std::span<const std::string> validMarkerNames = {});
31
+
32
+ /// Loads the main subject's marker data from a marker file (c3d, trc, glb) and converts the
33
+ /// positions to the target coordinate system. Default target coordinate system is: (Y-up,
34
+ /// right-handed, centimeter units). The main subject is determined as the one with the most number
35
+ /// of visible markers in the first frame.
36
+ ///
37
+ /// @param[in] filename The marker file to load data from.
38
+ /// @param[in] up (Optional) The up-vector convention of the input marker file (default:
39
+ /// UpVector::Y).
40
+ /// @return std::optional<MarkerSequence> A MarkerSequence containing the main subject's marker
41
+ /// data, or an empty optional if no main subject is found.
42
+ [[nodiscard]] std::optional<MarkerSequence> loadMarkersForMainSubject(
43
+ const std::string& filename,
44
+ UpVector up = UpVector::Y,
45
+ std::span<const std::string> validMarkerNames = {});
46
+
47
+ /// Finds the "main subject" from a vector of MarkerSequences. The main subject is currently defined
48
+ /// as a named actor with the maximum number of visible markers in the sequence.
49
+ ///
50
+ /// @param[in] markerSequences A vector of MarkerSequences to search for the main subject.
51
+ /// @return int The main subject's index in the input vector. If no main subject found, -1 is
52
+ /// returned.
53
+ /// @note This function is exposed mainly for unit tests.
54
+ [[nodiscard]] int findMainSubjectIndex(gsl::span<const MarkerSequence> markerSequences);
55
+
56
+ } // namespace momentum
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/marker.h>
11
+ #include <momentum/io/marker/coordinate_system.h>
12
+
13
+ namespace momentum {
14
+
15
+ /// Loads marker data from a TRC file into a MarkerSequence.
16
+ ///
17
+ /// The function reads the given TRC file and stores the marker data as a MarkerSequence. The unit
18
+ /// of the input file will be read from the file and converted to the momentum unit (i.e., cm). The
19
+ /// UpVector parameter 'up' is the up-vector convention of the input marker file.
20
+ ///
21
+ /// @param[in] filename The TRC file to load marker data from.
22
+ /// @param[in] up (Optional) The up-vector convention of the input marker file (default:
23
+ /// UpVector::Y).
24
+ /// @return MarkerSequence A MarkerSequence containing the marker data from the TRC file.
25
+ [[nodiscard]] MarkerSequence loadTrc(const std::string& filename, UpVector up = UpVector::Y);
26
+
27
+ } // namespace momentum
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/fwd.h>
11
+ #include <momentum/math/types.h>
12
+
13
+ namespace momentum {
14
+
15
+ /// Save motion data using character parameter mapping
16
+ ///
17
+ /// @param filename Output file path
18
+ /// @param poses Motion poses as span of vectors, each vector represents one frame
19
+ /// @param scale Joint scale parameters
20
+ /// @param character Character definition for parameter mapping
21
+ void saveMmo(
22
+ const std::string& filename,
23
+ gsl::span<const VectorXf> poses,
24
+ const VectorXf& scale,
25
+ const Character& character);
26
+
27
+ /// Save motion data with optional additional parameters
28
+ ///
29
+ /// @param filename Output file path
30
+ /// @param poses Motion poses matrix (parameters x frames)
31
+ /// @param scale Joint scale parameters
32
+ /// @param character Character definition for parameter mapping
33
+ /// @param additionalParameters Extra parameters to store alongside poses
34
+ /// @param additionalParameterNames Names for additional parameters
35
+ void saveMmo(
36
+ const std::string& filename,
37
+ const MatrixXf& poses,
38
+ const VectorXf& scale,
39
+ const Character& character,
40
+ const MatrixXf& additionalParameters = MatrixXf(),
41
+ gsl::span<const std::string> additionalParameterNames = std::vector<std::string>());
42
+
43
+ /// Save motion data with explicit parameter and joint names
44
+ ///
45
+ /// @param filename Output file path
46
+ /// @param poses Motion poses matrix (parameters x frames)
47
+ /// @param scale Joint scale parameters
48
+ /// @param parameterNames Names of motion parameters
49
+ /// @param jointNames Names of skeleton joints
50
+ void saveMmo(
51
+ const std::string& filename,
52
+ const MatrixXf& poses,
53
+ const VectorXf& scale,
54
+ gsl::span<const std::string> parameterNames,
55
+ gsl::span<const std::string> jointNames);
56
+
57
+ /// Load motion data from file
58
+ ///
59
+ /// @param filename Input file path
60
+ /// @return Tuple of (poses, scale, parameter names, joint names)
61
+ std::tuple<MatrixXf, VectorXf, std::vector<std::string>, std::vector<std::string>> loadMmo(
62
+ const std::string& filename);
63
+
64
+ /// Load motion data and map to character parameter space
65
+ ///
66
+ /// @param filename Input file path
67
+ /// @param character Target character for parameter mapping
68
+ /// @return Tuple of (mapped poses, mapped scale)
69
+ std::tuple<MatrixXf, VectorXf> loadMmo(const std::string& filename, const Character& character);
70
+
71
+ /// Extract auxiliary data from motion parameters
72
+ ///
73
+ /// Auxiliary parameters are identified by names wrapped with double underscores (e.g., "__param__")
74
+ ///
75
+ /// @param poses Motion poses matrix
76
+ /// @param parameterNames Names of all parameters
77
+ /// @return Tuple of (auxiliary data matrix, auxiliary parameter names without underscores)
78
+ std::tuple<MatrixXf, std::vector<std::string>> getAuxiliaryDataFromMotion(
79
+ const MatrixXf& poses,
80
+ gsl::span<const std::string> parameterNames);
81
+
82
+ /// Map motion data from one parameter space to character parameter space
83
+ ///
84
+ /// @param poses Source motion poses
85
+ /// @param offsets Source joint offsets
86
+ /// @param parameterNames Source parameter names
87
+ /// @param jointNames Source joint names
88
+ /// @param character Target character definition
89
+ /// @return Tuple of (mapped poses, mapped offsets)
90
+ std::tuple<MatrixXf, VectorXf> mapMotionToCharacter(
91
+ const MatrixXf& poses,
92
+ const VectorXf& offsets,
93
+ gsl::span<const std::string> parameterNames,
94
+ gsl::span<const std::string> jointNames,
95
+ const Character& character);
96
+
97
+ } // namespace momentum
@@ -0,0 +1,70 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/blend_shape.h>
11
+ #include <momentum/common/filesystem.h>
12
+
13
+ #include <iosfwd>
14
+
15
+ namespace momentum {
16
+
17
+ /// Loads blend shape vectors from a file without base shape.
18
+ ///
19
+ /// @param filename Path to the blend shape base data file
20
+ /// @param expectedShapes Limits number of shape vectors loaded if > 0, otherwise loads all
21
+ /// @param expectedVertices Limits number of vertices loaded if > 0, otherwise loads all
22
+ /// @return BlendShapeBase object with loaded shape vectors
23
+ BlendShapeBase loadBlendShapeBase(
24
+ const filesystem::path& filename,
25
+ int expectedShapes = -1,
26
+ int expectedVertices = -1);
27
+
28
+ /// Loads blend shape vectors from a stream without base shape.
29
+ ///
30
+ /// @param data Input stream containing blend shape base data
31
+ /// @param expectedShapes Limits number of shape vectors loaded if > 0, otherwise loads all
32
+ /// @param expectedVertices Limits number of vertices loaded if > 0, otherwise loads all
33
+ /// @return BlendShapeBase object with loaded shape vectors
34
+ BlendShapeBase
35
+ loadBlendShapeBase(std::istream& data, int expectedShapes = -1, int expectedVertices = -1);
36
+
37
+ /// Loads a blend shape from a file, including base shape and shape vectors.
38
+ ///
39
+ /// @param filename Path to the blend shape data file
40
+ /// @param expectedShapes Limits number of shape vectors loaded if > 0, otherwise loads all
41
+ /// @param expectedVertices Limits number of vertices loaded if > 0, otherwise loads all
42
+ /// @return BlendShape object with loaded data
43
+ ///
44
+ /// @note Only supports local files. For non-local paths, use the stream version.
45
+ BlendShape loadBlendShape(
46
+ const filesystem::path& filename,
47
+ int expectedShapes = -1,
48
+ int expectedVertices = -1);
49
+
50
+ /// Loads a blend shape from a stream, including base shape and shape vectors.
51
+ ///
52
+ /// @param data Input stream containing blend shape data
53
+ /// @param expectedShapes Limits number of shape vectors loaded if > 0, otherwise loads all
54
+ /// @param expectedVertices Limits number of vertices loaded if > 0, otherwise loads all
55
+ /// @return BlendShape object with loaded data
56
+ BlendShape loadBlendShape(std::istream& data, int expectedShapes = -1, int expectedVertices = -1);
57
+
58
+ /// Saves a blend shape to a file.
59
+ ///
60
+ /// @param filename Output file path for the blend shape data
61
+ /// @param blendShape BlendShape object to save
62
+ void saveBlendShape(const filesystem::path& filename, const BlendShape& blendShape);
63
+
64
+ /// Saves a blend shape to a stream.
65
+ ///
66
+ /// @param os Output stream to write blend shape data
67
+ /// @param blendShape BlendShape object to save
68
+ void saveBlendShape(std::ostream& os, const BlendShape& blendShape);
69
+
70
+ } // namespace momentum
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/pose_shape.h>
11
+
12
+ namespace momentum {
13
+
14
+ /// Loads pose shape data from a binary file.
15
+ ///
16
+ /// @param filename Path to the pose shape data file
17
+ /// @param character Character containing skeleton and mesh for validation and joint mapping
18
+ /// @return PoseShape with loaded data, or empty PoseShape if file cannot be opened
19
+ PoseShape loadPoseShape(const std::string& filename, const Character& character);
20
+
21
+ } // namespace momentum
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/fwd.h>
11
+ #include <momentum/character/locator.h>
12
+
13
+ #include <momentum/common/filesystem.h>
14
+ #include <gsl/span>
15
+
16
+ namespace momentum {
17
+
18
+ enum class LocatorSpace {
19
+ Local = 0, // local offset in the joint space; useful for transferring locators from one model to
20
+ // another.
21
+ Global = 1, // global offset in the character's space; useful for authoring in Maya/Blender
22
+ // without parenting the locators.
23
+ };
24
+
25
+ LocatorList loadLocators(
26
+ const filesystem::path& filename,
27
+ const Skeleton& skeleton,
28
+ const ParameterTransform& parameterTransform);
29
+
30
+ LocatorList loadLocatorsFromBuffer(
31
+ gsl::span<const std::byte> rawData,
32
+ const Skeleton& skeleton,
33
+ const ParameterTransform& parameterTransform);
34
+
35
+ void saveLocators(
36
+ const filesystem::path& filename,
37
+ const LocatorList& locators,
38
+ const Skeleton& skeleton,
39
+ LocatorSpace space = LocatorSpace::Global);
40
+
41
+ } // namespace momentum
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/math/fwd.h>
11
+
12
+ #include <gsl/span>
13
+
14
+ #include <istream>
15
+
16
+ namespace momentum {
17
+
18
+ std::shared_ptr<const Mppca> loadMppca(std::istream& inputStream);
19
+
20
+ std::shared_ptr<const Mppca> loadMppca(const std::string& name);
21
+
22
+ std::shared_ptr<const Mppca> loadMppca(gsl::span<const unsigned char> posePriorDataRaw);
23
+
24
+ void saveMppca(const Mppca& mppca, const std::string& name);
25
+
26
+ } // namespace momentum
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/fwd.h>
11
+ #include <momentum/character/parameter_limits.h>
12
+
13
+ namespace momentum {
14
+
15
+ ParameterLimits parseParameterLimits(
16
+ const std::string& data,
17
+ const Skeleton& skeleton,
18
+ const ParameterTransform& parameterTransform);
19
+
20
+ std::string writeParameterLimits(
21
+ const ParameterLimits& parameterLimits,
22
+ const Skeleton& skeleton,
23
+ const ParameterTransform& parameterTransform);
24
+
25
+ } // namespace momentum
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/parameter_limits.h>
11
+ #include <momentum/character/parameter_transform.h>
12
+ #include <momentum/common/filesystem.h>
13
+
14
+ #include <gsl/span>
15
+
16
+ #include <string>
17
+ #include <unordered_map>
18
+
19
+ namespace momentum {
20
+
21
+ std::unordered_map<std::string, std::string> loadMomentumModel(const filesystem::path& filename);
22
+
23
+ std::unordered_map<std::string, std::string> loadMomentumModelFromBuffer(
24
+ gsl::span<const std::byte> buffer);
25
+
26
+ ParameterTransform parseParameterTransform(const std::string& data, const Skeleton& skeleton);
27
+
28
+ ParameterSets parseParameterSets(const std::string& data, const ParameterTransform& pt);
29
+
30
+ PoseConstraints parsePoseConstraints(const std::string& data, const ParameterTransform& pt);
31
+
32
+ // load transform definition from file
33
+ std::tuple<ParameterTransform, ParameterLimits> loadModelDefinition(
34
+ const filesystem::path& filename,
35
+ const Skeleton& skeleton);
36
+
37
+ std::tuple<ParameterTransform, ParameterLimits> loadModelDefinition(
38
+ gsl::span<const std::byte> rawData,
39
+ const Skeleton& skeleton);
40
+
41
+ } // namespace momentum
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/fwd.h>
11
+
12
+ #include <string>
13
+ #include <unordered_map>
14
+
15
+ namespace momentum {
16
+
17
+ // Load the input parameters onto the character
18
+ void loadParameters(std::unordered_map<std::string, std::string>& param, Character& character);
19
+
20
+ } // namespace momentum
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/character.h>
11
+ #include <momentum/common/filesystem.h>
12
+ #include <momentum/math/types.h>
13
+
14
+ #include <gsl/span>
15
+
16
+ namespace momentum {
17
+
18
+ /// Loads a character from a URDF file.
19
+ template <typename T = float>
20
+ [[nodiscard]] CharacterT<T> loadUrdfCharacter(const filesystem::path& filepath);
21
+
22
+ /// Loads a character from a URDF file using the provided byte data.
23
+ template <typename T = float>
24
+ [[nodiscard]] CharacterT<T> loadUrdfCharacter(gsl::span<const std::byte> bytes);
25
+
26
+ } // namespace momentum
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/character/fwd.h>
11
+ #include <momentum/common/filesystem.h>
12
+ #include <momentum/math/types.h>
13
+
14
+ #include <gsl/span>
15
+
16
+ namespace momentum {
17
+
18
+ /// Load a USD character from a local file path.
19
+ ///
20
+ /// @param[in] inputPath The path to the USD character file.
21
+ /// @return The loaded Character object.
22
+ Character loadUsdCharacter(const filesystem::path& inputPath);
23
+
24
+ /// Load a USD character from a buffer.
25
+ ///
26
+ /// @param[in] inputSpan The buffer containing the USD character data.
27
+ /// @return The loaded Character object.
28
+ Character loadUsdCharacter(gsl::span<const std::byte> inputSpan);
29
+
30
+ /// Save a character to a USD file.
31
+ ///
32
+ /// @param[in] filename The path to save the USD file.
33
+ /// @param[in] character The Character object to save.
34
+ void saveUsd(const filesystem::path& filename, const Character& character);
35
+
36
+ } // namespace momentum