pymomentum-cpu 0.1.93.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.
Files changed (517) hide show
  1. include/axel/BoundingBox.h +59 -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 +87 -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 +208 -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 +97 -0
  30. include/momentum/character/blend_shape_base.h +86 -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 +94 -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 +207 -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 +227 -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 +155 -0
  61. include/momentum/character_sequence_solver/sequence_solver_function.h +158 -0
  62. include/momentum/character_sequence_solver/state_sequence_error_function.h +117 -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 +943 -0
  73. include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
  74. include/momentum/character_solver/height_error_function.h +176 -0
  75. include/momentum/character_solver/joint_to_joint_distance_error_function.h +111 -0
  76. include/momentum/character_solver/limit_error_function.h +57 -0
  77. include/momentum/character_solver/model_parameters_error_function.h +64 -0
  78. include/momentum/character_solver/normal_error_function.h +73 -0
  79. include/momentum/character_solver/orientation_error_function.h +74 -0
  80. include/momentum/character_solver/plane_error_function.h +102 -0
  81. include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
  82. include/momentum/character_solver/pose_prior_error_function.h +80 -0
  83. include/momentum/character_solver/position_error_function.h +75 -0
  84. include/momentum/character_solver/projection_error_function.h +93 -0
  85. include/momentum/character_solver/simd_collision_error_function.h +99 -0
  86. include/momentum/character_solver/simd_normal_error_function.h +157 -0
  87. include/momentum/character_solver/simd_plane_error_function.h +164 -0
  88. include/momentum/character_solver/simd_position_error_function.h +165 -0
  89. include/momentum/character_solver/skeleton_error_function.h +151 -0
  90. include/momentum/character_solver/skeleton_solver_function.h +94 -0
  91. include/momentum/character_solver/skinned_locator_error_function.h +166 -0
  92. include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
  93. include/momentum/character_solver/skinning_weight_iterator.h +80 -0
  94. include/momentum/character_solver/state_error_function.h +119 -0
  95. include/momentum/character_solver/transform_pose.h +80 -0
  96. include/momentum/character_solver/trust_region_qr.h +80 -0
  97. include/momentum/character_solver/vertex_error_function.h +155 -0
  98. include/momentum/character_solver/vertex_projection_error_function.h +117 -0
  99. include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -0
  100. include/momentum/common/aligned.h +155 -0
  101. include/momentum/common/checks.h +27 -0
  102. include/momentum/common/exception.h +70 -0
  103. include/momentum/common/filesystem.h +20 -0
  104. include/momentum/common/fwd.h +27 -0
  105. include/momentum/common/log.h +173 -0
  106. include/momentum/common/log_channel.h +17 -0
  107. include/momentum/common/memory.h +71 -0
  108. include/momentum/common/profile.h +79 -0
  109. include/momentum/common/progress_bar.h +37 -0
  110. include/momentum/common/string.h +52 -0
  111. include/momentum/diff_ik/ceres_utility.h +73 -0
  112. include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
  113. include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
  114. include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
  115. include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
  116. include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
  117. include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
  118. include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
  119. include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
  120. include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
  121. include/momentum/diff_ik/fwd.h +385 -0
  122. include/momentum/diff_ik/union_error_function.h +67 -0
  123. include/momentum/gui/rerun/eigen_adapters.h +70 -0
  124. include/momentum/gui/rerun/logger.h +102 -0
  125. include/momentum/gui/rerun/logging_redirect.h +27 -0
  126. include/momentum/io/character_io.h +98 -0
  127. include/momentum/io/common/gsl_utils.h +50 -0
  128. include/momentum/io/common/stream_utils.h +65 -0
  129. include/momentum/io/fbx/fbx_io.h +135 -0
  130. include/momentum/io/fbx/fbx_memory_stream.h +70 -0
  131. include/momentum/io/fbx/openfbx_loader.h +62 -0
  132. include/momentum/io/fbx/polygon_data.h +60 -0
  133. include/momentum/io/file_save_options.h +107 -0
  134. include/momentum/io/gltf/gltf_builder.h +141 -0
  135. include/momentum/io/gltf/gltf_io.h +149 -0
  136. include/momentum/io/gltf/utils/accessor_utils.h +299 -0
  137. include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
  138. include/momentum/io/gltf/utils/json_utils.h +102 -0
  139. include/momentum/io/legacy_json/legacy_json_io.h +70 -0
  140. include/momentum/io/marker/c3d_io.h +30 -0
  141. include/momentum/io/marker/conversions.h +57 -0
  142. include/momentum/io/marker/coordinate_system.h +30 -0
  143. include/momentum/io/marker/marker_io.h +56 -0
  144. include/momentum/io/marker/trc_io.h +27 -0
  145. include/momentum/io/motion/mmo_io.h +97 -0
  146. include/momentum/io/shape/blend_shape_io.h +82 -0
  147. include/momentum/io/shape/pose_shape_io.h +21 -0
  148. include/momentum/io/skeleton/locator_io.h +41 -0
  149. include/momentum/io/skeleton/mppca_io.h +26 -0
  150. include/momentum/io/skeleton/parameter_limits_io.h +38 -0
  151. include/momentum/io/skeleton/parameter_transform_io.h +80 -0
  152. include/momentum/io/skeleton/parameters_io.h +20 -0
  153. include/momentum/io/skeleton/utility.h +67 -0
  154. include/momentum/io/urdf/urdf_io.h +26 -0
  155. include/momentum/io/usd/usd_io.h +36 -0
  156. include/momentum/marker_tracking/app_utils.h +64 -0
  157. include/momentum/marker_tracking/marker_tracker.h +221 -0
  158. include/momentum/marker_tracking/process_markers.h +58 -0
  159. include/momentum/marker_tracking/tracker_utils.h +99 -0
  160. include/momentum/math/constants.h +82 -0
  161. include/momentum/math/covariance_matrix.h +84 -0
  162. include/momentum/math/fmt_eigen.h +23 -0
  163. include/momentum/math/fwd.h +132 -0
  164. include/momentum/math/generalized_loss.h +61 -0
  165. include/momentum/math/intersection.h +32 -0
  166. include/momentum/math/mesh.h +84 -0
  167. include/momentum/math/mppca.h +67 -0
  168. include/momentum/math/online_householder_qr.h +516 -0
  169. include/momentum/math/random-inl.h +404 -0
  170. include/momentum/math/random.h +310 -0
  171. include/momentum/math/simd_generalized_loss.h +40 -0
  172. include/momentum/math/transform.h +229 -0
  173. include/momentum/math/types.h +461 -0
  174. include/momentum/math/utility.h +324 -0
  175. include/momentum/rasterizer/camera.h +453 -0
  176. include/momentum/rasterizer/fwd.h +102 -0
  177. include/momentum/rasterizer/geometry.h +83 -0
  178. include/momentum/rasterizer/image.h +18 -0
  179. include/momentum/rasterizer/rasterizer.h +583 -0
  180. include/momentum/rasterizer/tensor.h +140 -0
  181. include/momentum/rasterizer/text_rasterizer.h +89 -0
  182. include/momentum/rasterizer/utility.h +268 -0
  183. include/momentum/simd/simd.h +221 -0
  184. include/momentum/solver/fwd.h +131 -0
  185. include/momentum/solver/gauss_newton_solver.h +136 -0
  186. include/momentum/solver/gradient_descent_solver.h +65 -0
  187. include/momentum/solver/solver.h +155 -0
  188. include/momentum/solver/solver_function.h +126 -0
  189. include/momentum/solver/subset_gauss_newton_solver.h +109 -0
  190. include/rerun/archetypes/annotation_context.hpp +157 -0
  191. include/rerun/archetypes/arrows2d.hpp +271 -0
  192. include/rerun/archetypes/arrows3d.hpp +257 -0
  193. include/rerun/archetypes/asset3d.hpp +262 -0
  194. include/rerun/archetypes/asset_video.hpp +275 -0
  195. include/rerun/archetypes/bar_chart.hpp +261 -0
  196. include/rerun/archetypes/boxes2d.hpp +293 -0
  197. include/rerun/archetypes/boxes3d.hpp +369 -0
  198. include/rerun/archetypes/capsules3d.hpp +333 -0
  199. include/rerun/archetypes/clear.hpp +180 -0
  200. include/rerun/archetypes/depth_image.hpp +425 -0
  201. include/rerun/archetypes/ellipsoids3d.hpp +384 -0
  202. include/rerun/archetypes/encoded_image.hpp +250 -0
  203. include/rerun/archetypes/geo_line_strings.hpp +166 -0
  204. include/rerun/archetypes/geo_points.hpp +177 -0
  205. include/rerun/archetypes/graph_edges.hpp +152 -0
  206. include/rerun/archetypes/graph_nodes.hpp +206 -0
  207. include/rerun/archetypes/image.hpp +434 -0
  208. include/rerun/archetypes/instance_poses3d.hpp +221 -0
  209. include/rerun/archetypes/line_strips2d.hpp +289 -0
  210. include/rerun/archetypes/line_strips3d.hpp +270 -0
  211. include/rerun/archetypes/mesh3d.hpp +387 -0
  212. include/rerun/archetypes/pinhole.hpp +385 -0
  213. include/rerun/archetypes/points2d.hpp +333 -0
  214. include/rerun/archetypes/points3d.hpp +369 -0
  215. include/rerun/archetypes/recording_properties.hpp +132 -0
  216. include/rerun/archetypes/scalar.hpp +170 -0
  217. include/rerun/archetypes/scalars.hpp +153 -0
  218. include/rerun/archetypes/segmentation_image.hpp +305 -0
  219. include/rerun/archetypes/series_line.hpp +274 -0
  220. include/rerun/archetypes/series_lines.hpp +271 -0
  221. include/rerun/archetypes/series_point.hpp +265 -0
  222. include/rerun/archetypes/series_points.hpp +251 -0
  223. include/rerun/archetypes/tensor.hpp +213 -0
  224. include/rerun/archetypes/text_document.hpp +200 -0
  225. include/rerun/archetypes/text_log.hpp +211 -0
  226. include/rerun/archetypes/transform3d.hpp +925 -0
  227. include/rerun/archetypes/video_frame_reference.hpp +295 -0
  228. include/rerun/archetypes/view_coordinates.hpp +393 -0
  229. include/rerun/archetypes.hpp +43 -0
  230. include/rerun/arrow_utils.hpp +32 -0
  231. include/rerun/as_components.hpp +90 -0
  232. include/rerun/blueprint/archetypes/background.hpp +113 -0
  233. include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
  234. include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
  235. include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
  236. include/rerun/blueprint/archetypes/force_center.hpp +115 -0
  237. include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
  238. include/rerun/blueprint/archetypes/force_link.hpp +136 -0
  239. include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
  240. include/rerun/blueprint/archetypes/force_position.hpp +132 -0
  241. include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
  242. include/rerun/blueprint/archetypes/map_background.hpp +104 -0
  243. include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
  244. include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
  245. include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
  246. include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
  247. include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
  248. include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
  249. include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
  250. include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
  251. include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
  252. include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
  253. include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
  254. include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
  255. include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
  256. include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
  257. include/rerun/blueprint/archetypes.hpp +29 -0
  258. include/rerun/blueprint/components/active_tab.hpp +82 -0
  259. include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
  260. include/rerun/blueprint/components/auto_layout.hpp +77 -0
  261. include/rerun/blueprint/components/auto_views.hpp +77 -0
  262. include/rerun/blueprint/components/background_kind.hpp +66 -0
  263. include/rerun/blueprint/components/column_share.hpp +78 -0
  264. include/rerun/blueprint/components/component_column_selector.hpp +81 -0
  265. include/rerun/blueprint/components/container_kind.hpp +65 -0
  266. include/rerun/blueprint/components/corner2d.hpp +64 -0
  267. include/rerun/blueprint/components/enabled.hpp +77 -0
  268. include/rerun/blueprint/components/filter_by_range.hpp +74 -0
  269. include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
  270. include/rerun/blueprint/components/force_distance.hpp +82 -0
  271. include/rerun/blueprint/components/force_iterations.hpp +82 -0
  272. include/rerun/blueprint/components/force_strength.hpp +82 -0
  273. include/rerun/blueprint/components/grid_columns.hpp +78 -0
  274. include/rerun/blueprint/components/grid_spacing.hpp +78 -0
  275. include/rerun/blueprint/components/included_content.hpp +86 -0
  276. include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
  277. include/rerun/blueprint/components/map_provider.hpp +64 -0
  278. include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
  279. include/rerun/blueprint/components/panel_state.hpp +61 -0
  280. include/rerun/blueprint/components/query_expression.hpp +89 -0
  281. include/rerun/blueprint/components/root_container.hpp +77 -0
  282. include/rerun/blueprint/components/row_share.hpp +78 -0
  283. include/rerun/blueprint/components/selected_columns.hpp +76 -0
  284. include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
  285. include/rerun/blueprint/components/timeline_name.hpp +76 -0
  286. include/rerun/blueprint/components/view_class.hpp +76 -0
  287. include/rerun/blueprint/components/view_fit.hpp +61 -0
  288. include/rerun/blueprint/components/view_maximized.hpp +79 -0
  289. include/rerun/blueprint/components/view_origin.hpp +81 -0
  290. include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
  291. include/rerun/blueprint/components/visible_time_range.hpp +77 -0
  292. include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
  293. include/rerun/blueprint/components/visualizer_override.hpp +86 -0
  294. include/rerun/blueprint/components/zoom_level.hpp +78 -0
  295. include/rerun/blueprint/components.hpp +41 -0
  296. include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
  297. include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
  298. include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
  299. include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
  300. include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
  301. include/rerun/blueprint/datatypes.hpp +9 -0
  302. include/rerun/c/arrow_c_data_interface.h +111 -0
  303. include/rerun/c/compiler_utils.h +10 -0
  304. include/rerun/c/rerun.h +627 -0
  305. include/rerun/c/sdk_info.h +28 -0
  306. include/rerun/collection.hpp +496 -0
  307. include/rerun/collection_adapter.hpp +43 -0
  308. include/rerun/collection_adapter_builtins.hpp +138 -0
  309. include/rerun/compiler_utils.hpp +61 -0
  310. include/rerun/component_batch.hpp +163 -0
  311. include/rerun/component_column.hpp +111 -0
  312. include/rerun/component_descriptor.hpp +142 -0
  313. include/rerun/component_type.hpp +35 -0
  314. include/rerun/components/aggregation_policy.hpp +76 -0
  315. include/rerun/components/albedo_factor.hpp +74 -0
  316. include/rerun/components/annotation_context.hpp +102 -0
  317. include/rerun/components/axis_length.hpp +74 -0
  318. include/rerun/components/blob.hpp +73 -0
  319. include/rerun/components/class_id.hpp +71 -0
  320. include/rerun/components/clear_is_recursive.hpp +75 -0
  321. include/rerun/components/color.hpp +99 -0
  322. include/rerun/components/colormap.hpp +99 -0
  323. include/rerun/components/depth_meter.hpp +84 -0
  324. include/rerun/components/draw_order.hpp +79 -0
  325. include/rerun/components/entity_path.hpp +83 -0
  326. include/rerun/components/fill_mode.hpp +72 -0
  327. include/rerun/components/fill_ratio.hpp +79 -0
  328. include/rerun/components/gamma_correction.hpp +80 -0
  329. include/rerun/components/geo_line_string.hpp +63 -0
  330. include/rerun/components/graph_edge.hpp +75 -0
  331. include/rerun/components/graph_node.hpp +79 -0
  332. include/rerun/components/graph_type.hpp +57 -0
  333. include/rerun/components/half_size2d.hpp +91 -0
  334. include/rerun/components/half_size3d.hpp +95 -0
  335. include/rerun/components/image_buffer.hpp +86 -0
  336. include/rerun/components/image_format.hpp +84 -0
  337. include/rerun/components/image_plane_distance.hpp +77 -0
  338. include/rerun/components/interactive.hpp +76 -0
  339. include/rerun/components/keypoint_id.hpp +74 -0
  340. include/rerun/components/lat_lon.hpp +89 -0
  341. include/rerun/components/length.hpp +77 -0
  342. include/rerun/components/line_strip2d.hpp +73 -0
  343. include/rerun/components/line_strip3d.hpp +73 -0
  344. include/rerun/components/magnification_filter.hpp +63 -0
  345. include/rerun/components/marker_shape.hpp +82 -0
  346. include/rerun/components/marker_size.hpp +74 -0
  347. include/rerun/components/media_type.hpp +157 -0
  348. include/rerun/components/name.hpp +83 -0
  349. include/rerun/components/opacity.hpp +77 -0
  350. include/rerun/components/pinhole_projection.hpp +94 -0
  351. include/rerun/components/plane3d.hpp +75 -0
  352. include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
  353. include/rerun/components/pose_rotation_quat.hpp +71 -0
  354. include/rerun/components/pose_scale3d.hpp +102 -0
  355. include/rerun/components/pose_transform_mat3x3.hpp +87 -0
  356. include/rerun/components/pose_translation3d.hpp +96 -0
  357. include/rerun/components/position2d.hpp +86 -0
  358. include/rerun/components/position3d.hpp +90 -0
  359. include/rerun/components/radius.hpp +98 -0
  360. include/rerun/components/range1d.hpp +75 -0
  361. include/rerun/components/resolution.hpp +88 -0
  362. include/rerun/components/rotation_axis_angle.hpp +72 -0
  363. include/rerun/components/rotation_quat.hpp +71 -0
  364. include/rerun/components/scalar.hpp +76 -0
  365. include/rerun/components/scale3d.hpp +102 -0
  366. include/rerun/components/series_visible.hpp +76 -0
  367. include/rerun/components/show_labels.hpp +79 -0
  368. include/rerun/components/stroke_width.hpp +74 -0
  369. include/rerun/components/tensor_data.hpp +94 -0
  370. include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
  371. include/rerun/components/tensor_height_dimension.hpp +71 -0
  372. include/rerun/components/tensor_width_dimension.hpp +71 -0
  373. include/rerun/components/texcoord2d.hpp +101 -0
  374. include/rerun/components/text.hpp +83 -0
  375. include/rerun/components/text_log_level.hpp +110 -0
  376. include/rerun/components/timestamp.hpp +76 -0
  377. include/rerun/components/transform_mat3x3.hpp +92 -0
  378. include/rerun/components/transform_relation.hpp +66 -0
  379. include/rerun/components/translation3d.hpp +96 -0
  380. include/rerun/components/triangle_indices.hpp +85 -0
  381. include/rerun/components/value_range.hpp +78 -0
  382. include/rerun/components/vector2d.hpp +92 -0
  383. include/rerun/components/vector3d.hpp +96 -0
  384. include/rerun/components/video_timestamp.hpp +120 -0
  385. include/rerun/components/view_coordinates.hpp +346 -0
  386. include/rerun/components/visible.hpp +74 -0
  387. include/rerun/components.hpp +77 -0
  388. include/rerun/config.hpp +52 -0
  389. include/rerun/datatypes/angle.hpp +76 -0
  390. include/rerun/datatypes/annotation_info.hpp +76 -0
  391. include/rerun/datatypes/blob.hpp +67 -0
  392. include/rerun/datatypes/bool.hpp +57 -0
  393. include/rerun/datatypes/channel_datatype.hpp +87 -0
  394. include/rerun/datatypes/class_description.hpp +92 -0
  395. include/rerun/datatypes/class_description_map_elem.hpp +69 -0
  396. include/rerun/datatypes/class_id.hpp +62 -0
  397. include/rerun/datatypes/color_model.hpp +68 -0
  398. include/rerun/datatypes/dvec2d.hpp +76 -0
  399. include/rerun/datatypes/entity_path.hpp +60 -0
  400. include/rerun/datatypes/float32.hpp +62 -0
  401. include/rerun/datatypes/float64.hpp +62 -0
  402. include/rerun/datatypes/image_format.hpp +107 -0
  403. include/rerun/datatypes/keypoint_id.hpp +63 -0
  404. include/rerun/datatypes/keypoint_pair.hpp +65 -0
  405. include/rerun/datatypes/mat3x3.hpp +105 -0
  406. include/rerun/datatypes/mat4x4.hpp +119 -0
  407. include/rerun/datatypes/pixel_format.hpp +142 -0
  408. include/rerun/datatypes/plane3d.hpp +60 -0
  409. include/rerun/datatypes/quaternion.hpp +110 -0
  410. include/rerun/datatypes/range1d.hpp +59 -0
  411. include/rerun/datatypes/range2d.hpp +55 -0
  412. include/rerun/datatypes/rgba32.hpp +94 -0
  413. include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
  414. include/rerun/datatypes/tensor_buffer.hpp +529 -0
  415. include/rerun/datatypes/tensor_data.hpp +100 -0
  416. include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
  417. include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
  418. include/rerun/datatypes/time_int.hpp +62 -0
  419. include/rerun/datatypes/time_range.hpp +55 -0
  420. include/rerun/datatypes/time_range_boundary.hpp +175 -0
  421. include/rerun/datatypes/uint16.hpp +62 -0
  422. include/rerun/datatypes/uint32.hpp +62 -0
  423. include/rerun/datatypes/uint64.hpp +62 -0
  424. include/rerun/datatypes/utf8.hpp +76 -0
  425. include/rerun/datatypes/utf8pair.hpp +62 -0
  426. include/rerun/datatypes/uuid.hpp +60 -0
  427. include/rerun/datatypes/uvec2d.hpp +76 -0
  428. include/rerun/datatypes/uvec3d.hpp +80 -0
  429. include/rerun/datatypes/uvec4d.hpp +59 -0
  430. include/rerun/datatypes/vec2d.hpp +76 -0
  431. include/rerun/datatypes/vec3d.hpp +80 -0
  432. include/rerun/datatypes/vec4d.hpp +84 -0
  433. include/rerun/datatypes/video_timestamp.hpp +67 -0
  434. include/rerun/datatypes/view_coordinates.hpp +87 -0
  435. include/rerun/datatypes/visible_time_range.hpp +57 -0
  436. include/rerun/datatypes.hpp +51 -0
  437. include/rerun/demo_utils.hpp +75 -0
  438. include/rerun/entity_path.hpp +20 -0
  439. include/rerun/error.hpp +180 -0
  440. include/rerun/half.hpp +10 -0
  441. include/rerun/image_utils.hpp +187 -0
  442. include/rerun/indicator_component.hpp +59 -0
  443. include/rerun/loggable.hpp +54 -0
  444. include/rerun/recording_stream.hpp +960 -0
  445. include/rerun/rerun_sdk_export.hpp +25 -0
  446. include/rerun/result.hpp +86 -0
  447. include/rerun/rotation3d.hpp +33 -0
  448. include/rerun/sdk_info.hpp +20 -0
  449. include/rerun/spawn.hpp +21 -0
  450. include/rerun/spawn_options.hpp +57 -0
  451. include/rerun/string_utils.hpp +16 -0
  452. include/rerun/third_party/cxxopts.hpp +2198 -0
  453. include/rerun/time_column.hpp +288 -0
  454. include/rerun/timeline.hpp +38 -0
  455. include/rerun/type_traits.hpp +40 -0
  456. include/rerun.hpp +86 -0
  457. lib/cmake/axel/axel-config.cmake +45 -0
  458. lib/cmake/axel/axelTargets-release.cmake +19 -0
  459. lib/cmake/axel/axelTargets.cmake +108 -0
  460. lib/cmake/momentum/FindFbxSdk.cmake +115 -0
  461. lib/cmake/momentum/Findre2.cmake +52 -0
  462. lib/cmake/momentum/momentum-config.cmake +67 -0
  463. lib/cmake/momentum/momentumTargets-release.cmake +259 -0
  464. lib/cmake/momentum/momentumTargets.cmake +385 -0
  465. lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
  466. lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
  467. lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
  468. lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
  469. lib/libarrow.a +0 -0
  470. lib/libarrow_bundled_dependencies.a +0 -0
  471. lib/libaxel.a +0 -0
  472. lib/libmomentum_app_utils.a +0 -0
  473. lib/libmomentum_character.a +0 -0
  474. lib/libmomentum_character_sequence_solver.a +0 -0
  475. lib/libmomentum_character_solver.a +0 -0
  476. lib/libmomentum_common.a +0 -0
  477. lib/libmomentum_diff_ik.a +0 -0
  478. lib/libmomentum_io.a +0 -0
  479. lib/libmomentum_io_common.a +0 -0
  480. lib/libmomentum_io_fbx.a +0 -0
  481. lib/libmomentum_io_gltf.a +0 -0
  482. lib/libmomentum_io_legacy_json.a +0 -0
  483. lib/libmomentum_io_marker.a +0 -0
  484. lib/libmomentum_io_motion.a +0 -0
  485. lib/libmomentum_io_shape.a +0 -0
  486. lib/libmomentum_io_skeleton.a +0 -0
  487. lib/libmomentum_io_urdf.a +0 -0
  488. lib/libmomentum_marker_tracker.a +0 -0
  489. lib/libmomentum_math.a +0 -0
  490. lib/libmomentum_online_qr.a +0 -0
  491. lib/libmomentum_process_markers.a +0 -0
  492. lib/libmomentum_rerun.a +0 -0
  493. lib/libmomentum_simd_constraints.a +0 -0
  494. lib/libmomentum_simd_generalized_loss.a +0 -0
  495. lib/libmomentum_skeleton.a +0 -0
  496. lib/libmomentum_solver.a +0 -0
  497. lib/librerun_c__macos_arm64.a +0 -0
  498. lib/librerun_sdk.a +0 -0
  499. pymomentum/axel.cpython-312-darwin.so +0 -0
  500. pymomentum/backend/__init__.py +16 -0
  501. pymomentum/backend/skel_state_backend.py +631 -0
  502. pymomentum/backend/trs_backend.py +889 -0
  503. pymomentum/backend/utils.py +224 -0
  504. pymomentum/geometry.cpython-312-darwin.so +0 -0
  505. pymomentum/marker_tracking.cpython-312-darwin.so +0 -0
  506. pymomentum/quaternion.py +740 -0
  507. pymomentum/skel_state.py +514 -0
  508. pymomentum/solver.cpython-312-darwin.so +0 -0
  509. pymomentum/solver2.cpython-312-darwin.so +0 -0
  510. pymomentum/torch/character.py +868 -0
  511. pymomentum/torch/parameter_limits.py +494 -0
  512. pymomentum/torch/utility.py +20 -0
  513. pymomentum/trs.py +535 -0
  514. pymomentum_cpu-0.1.93.post0.dist-info/METADATA +126 -0
  515. pymomentum_cpu-0.1.93.post0.dist-info/RECORD +517 -0
  516. pymomentum_cpu-0.1.93.post0.dist-info/WHEEL +5 -0
  517. pymomentum_cpu-0.1.93.post0.dist-info/licenses/LICENSE +21 -0
@@ -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 <fmt/format.h>
11
+
12
+ #include <stdexcept>
13
+
14
+ /// Throws an exception of a specified type with a formatted message.
15
+ /// @param Exception The type of exception to throw.
16
+ /// @param ... The message and format specifiers.
17
+ /// @code
18
+ /// MT_THROW_T(std::invalid_argument, "Invalid argument: {}", arg);
19
+ /// MT_THROW_T(std::bad_array_new_length); // No message
20
+ /// @endcode
21
+ #define MT_THROW_T(Exception, ...) ::momentum::detail::throwImpl<Exception>(__VA_ARGS__)
22
+
23
+ /// Throws a std::runtime_error with a formatted message.
24
+ /// @param ... The message and format specifiers.
25
+ /// @code
26
+ /// MT_THROW("Error occurred: {}", errorDetail);
27
+ /// @endcode
28
+ #define MT_THROW(...) MT_THROW_T(::momentum::detail::DefaultException, ##__VA_ARGS__)
29
+
30
+ /// Conditionally throws an exception of a specified type with a formatted message if the condition
31
+ /// is true.
32
+ /// @param Condition The condition to evaluate.
33
+ /// @param Exception The type of exception to throw.
34
+ /// @param ... The message and format specifiers.
35
+ /// @code
36
+ /// MT_THROW_IF_T(x > y, std::out_of_range, "x ({}) is greater than y ({})", x, y);
37
+ /// MT_THROW_IF_T(x > y, std::bad_array_new_length); // No message
38
+ /// @endcode
39
+ #define MT_THROW_IF_T(Condition, Exception, ...) \
40
+ if (Condition) { \
41
+ MT_THROW_T(Exception, ##__VA_ARGS__); \
42
+ }
43
+
44
+ /// Conditionally throws a std::runtime_error with a formatted message if the condition is true.
45
+ /// @param Condition The condition to evaluate.
46
+ /// @param ... The message and format specifiers.
47
+ /// @code
48
+ /// MT_THROW_IF(x == nullptr, "x cannot be nullptr");
49
+ /// @endcode
50
+ #define MT_THROW_IF(Condition, ...) \
51
+ MT_THROW_IF_T(Condition, ::momentum::detail::DefaultException, ##__VA_ARGS__)
52
+
53
+ namespace momentum::detail {
54
+
55
+ using DefaultException = std::runtime_error;
56
+
57
+ // Helper function template to throw with formatted message
58
+ template <typename Exception = DefaultException, typename... Args>
59
+ [[noreturn]] void throwImpl(fmt::format_string<Args...> format, Args&&... args) {
60
+ throw Exception{fmt::format(format, std::forward<Args>(args)...)};
61
+ }
62
+
63
+ // Overload for throwing exceptions that do not require any message or whose constructors do not
64
+ // take any arguments.
65
+ template <typename Exception>
66
+ [[noreturn]] void throwImpl() {
67
+ throw Exception{};
68
+ }
69
+
70
+ } // namespace momentum::detail
@@ -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
+ #if defined(MOMENTUM_WITH_PORTABILITY)
11
+
12
+ #include <portability/Filesystem.h>
13
+
14
+ #else
15
+
16
+ #include <filesystem>
17
+
18
+ namespace filesystem = std::filesystem;
19
+
20
+ #endif
@@ -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
+ // This file is @generated by gen_fwd.py
9
+ // Do not edit this file directly, instead update gen_fwd_input.toml and run:
10
+ // buck run @arvr/mode/platform010/opt //arvr/libraries/momentum:gen_fwd
11
+
12
+ #pragma once
13
+
14
+ #include <memory>
15
+
16
+ namespace momentum {
17
+
18
+ class ProgressBar;
19
+
20
+ using ProgressBar_p = ::std::shared_ptr<ProgressBar>;
21
+ using ProgressBar_u = ::std::unique_ptr<ProgressBar>;
22
+ using ProgressBar_w = ::std::weak_ptr<ProgressBar>;
23
+ using ProgressBar_const_p = ::std::shared_ptr<const ProgressBar>;
24
+ using ProgressBar_const_u = ::std::unique_ptr<const ProgressBar>;
25
+ using ProgressBar_const_w = ::std::weak_ptr<const ProgressBar>;
26
+
27
+ } // namespace momentum
@@ -0,0 +1,173 @@
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
+ #if defined(MOMENTUM_WITH_XR_LOGGER)
11
+
12
+ // Allow DEFAULT_LOG_CHANNEL to be defined before including this file if you want to override the
13
+ // default channel name. To set your own channel name (the order matters):
14
+ // #define DEFAULT_LOG_CHANNEL "my_custom_channel_name"
15
+ // #include <momentum/common/logging.h>
16
+ #ifndef DEFAULT_LOG_CHANNEL
17
+ #include <momentum/common/log_channel.h>
18
+ #define DEFAULT_LOG_CHANNEL MOMENTUM_LOG_CHANNEL
19
+ #endif
20
+
21
+ #include <logging/Log.h>
22
+
23
+ #define MT_LOGT(...) XR_LOGT(__VA_ARGS__)
24
+ #define MT_LOGD(...) XR_LOGD(__VA_ARGS__)
25
+ #define MT_LOGI(...) XR_LOGI(__VA_ARGS__)
26
+ #define MT_LOGW(...) XR_LOGW(__VA_ARGS__)
27
+ #define MT_LOGE(...) XR_LOGE(__VA_ARGS__)
28
+
29
+ #define MT_LOGT_IF(condition, ...) XR_LOGT_IF(condition, __VA_ARGS__)
30
+ #define MT_LOGD_IF(condition, ...) XR_LOGD_IF(condition, __VA_ARGS__)
31
+ #define MT_LOGI_IF(condition, ...) XR_LOGI_IF(condition, __VA_ARGS__)
32
+ #define MT_LOGW_IF(condition, ...) XR_LOGW_IF(condition, __VA_ARGS__)
33
+ #define MT_LOGE_IF(condition, ...) XR_LOGE_IF(condition, __VA_ARGS__)
34
+
35
+ #define MT_LOGT_ONCE(...) XR_LOGT_ONCE(__VA_ARGS__)
36
+ #define MT_LOGD_ONCE(...) XR_LOGD_ONCE(__VA_ARGS__)
37
+ #define MT_LOGI_ONCE(...) XR_LOGI_ONCE(__VA_ARGS__)
38
+ #define MT_LOGW_ONCE(...) XR_LOGW_ONCE(__VA_ARGS__)
39
+ #define MT_LOGE_ONCE(...) XR_LOGE_ONCE(__VA_ARGS__)
40
+
41
+ #define MT_LOGT_ONCE_IF(condition, ...) XR_LOGT_ONCE_IF(condition, __VA_ARGS__)
42
+ #define MT_LOGD_ONCE_IF(condition, ...) XR_LOGD_ONCE_IF(condition, __VA_ARGS__)
43
+ #define MT_LOGI_ONCE_IF(condition, ...) XR_LOGI_ONCE_IF(condition, __VA_ARGS__)
44
+ #define MT_LOGW_ONCE_IF(condition, ...) XR_LOGW_ONCE_IF(condition, __VA_ARGS__)
45
+ #define MT_LOGE_ONCE_IF(condition, ...) XR_LOGE_ONCE_IF(condition, __VA_ARGS__)
46
+
47
+ #elif defined(MOMENTUM_WITH_SPDLOG)
48
+
49
+ #include <spdlog/spdlog.h>
50
+
51
+ #include <atomic>
52
+
53
+ #define MT_LOGT(...) ::spdlog::trace(__VA_ARGS__)
54
+ #define MT_LOGD(...) ::spdlog::debug(__VA_ARGS__)
55
+ #define MT_LOGI(...) ::spdlog::info(__VA_ARGS__)
56
+ #define MT_LOGW(...) ::spdlog::warn(__VA_ARGS__)
57
+ #define MT_LOGE(...) ::spdlog::error(__VA_ARGS__)
58
+
59
+ #define MT_LOGT_IF(condition, ...) \
60
+ if (condition) { \
61
+ MT_LOGT(__VA_ARGS__); \
62
+ }
63
+ #define MT_LOGD_IF(condition, ...) \
64
+ if (condition) { \
65
+ MT_LOGD(__VA_ARGS__); \
66
+ }
67
+ #define MT_LOGI_IF(condition, ...) \
68
+ if (condition) { \
69
+ MT_LOGI(__VA_ARGS__); \
70
+ }
71
+ #define MT_LOGW_IF(condition, ...) \
72
+ if (condition) { \
73
+ MT_LOGW(__VA_ARGS__); \
74
+ }
75
+ #define MT_LOGE_IF(condition, ...) \
76
+ if (condition) { \
77
+ MT_LOGE(__VA_ARGS__); \
78
+ }
79
+
80
+ // This function is designed to limit the number of times an error is logged.
81
+ // Please note that in a multi-threaded context, its behavior may not be guaranteed.
82
+ #define _MT_RUN_ONCE(runcode) \
83
+ { \
84
+ static std::atomic<bool> codeRan(false); \
85
+ if (!codeRan) { \
86
+ bool expected = false; \
87
+ if (codeRan.compare_exchange_strong(expected, true)) { \
88
+ runcode; \
89
+ } \
90
+ } \
91
+ }
92
+
93
+ #define MT_LOGT_ONCE(...) _MT_RUN_ONCE(MT_LOGT(__VA_ARGS__))
94
+ #define MT_LOGD_ONCE(...) _MT_RUN_ONCE(MT_LOGD(__VA_ARGS__))
95
+ #define MT_LOGI_ONCE(...) _MT_RUN_ONCE(MT_LOGI(__VA_ARGS__))
96
+ #define MT_LOGW_ONCE(...) _MT_RUN_ONCE(MT_LOGW(__VA_ARGS__))
97
+ #define MT_LOGE_ONCE(...) _MT_RUN_ONCE(MT_LOGE(__VA_ARGS__))
98
+
99
+ #define MT_LOGT_ONCE_IF(condition, ...) \
100
+ if (condition) { \
101
+ MT_LOGT_ONCE(__VA_ARGS__); \
102
+ }
103
+ #define MT_LOGD_ONCE_IF(condition, ...) \
104
+ if (condition) { \
105
+ MT_LOGD_ONCE(__VA_ARGS__); \
106
+ }
107
+ #define MT_LOGI_ONCE_IF(condition, ...) \
108
+ if (condition) { \
109
+ MT_LOGI_ONCE(__VA_ARGS__); \
110
+ }
111
+ #define MT_LOGW_ONCE_IF(condition, ...) \
112
+ if (condition) { \
113
+ MT_LOGW_ONCE(__VA_ARGS__); \
114
+ }
115
+ #define MT_LOGE_ONCE_IF(condition, ...) \
116
+ if (condition) { \
117
+ MT_LOGE_ONCE(__VA_ARGS__); \
118
+ }
119
+
120
+ #else
121
+
122
+ #define MT_LOGT(...)
123
+ #define MT_LOGD(...)
124
+ #define MT_LOGI(...)
125
+ #define MT_LOGW(...)
126
+ #define MT_LOGE(...)
127
+
128
+ #define MT_LOGT_IF(condition, ...)
129
+ #define MT_LOGD_IF(condition, ...)
130
+ #define MT_LOGI_IF(condition, ...)
131
+ #define MT_LOGW_IF(condition, ...)
132
+ #define MT_LOGE_IF(condition, ...)
133
+
134
+ #define MT_LOGT_ONCE(...)
135
+ #define MT_LOGD_ONCE(...)
136
+ #define MT_LOGI_ONCE(...)
137
+ #define MT_LOGW_ONCE(...)
138
+ #define MT_LOGE_ONCE(...)
139
+
140
+ #define MT_LOGT_ONCE_IF(condition, ...)
141
+ #define MT_LOGD_ONCE_IF(condition, ...)
142
+ #define MT_LOGI_ONCE_IF(condition, ...)
143
+ #define MT_LOGW_ONCE_IF(condition, ...)
144
+ #define MT_LOGE_ONCE_IF(condition, ...)
145
+
146
+ #endif
147
+
148
+ #include <momentum/common/checks.h>
149
+
150
+ #include <map>
151
+ #include <string>
152
+
153
+ namespace momentum {
154
+
155
+ /// Logging levels in descending order of verbosity
156
+ enum class LogLevel {
157
+ Disabled = 0,
158
+ Error,
159
+ Warning,
160
+ Info,
161
+ Debug,
162
+ Trace,
163
+ };
164
+
165
+ [[nodiscard]] std::map<std::string, LogLevel> logLevelMap();
166
+
167
+ void setLogLevel(LogLevel level);
168
+
169
+ void setLogLevel(const std::string& levelStr);
170
+
171
+ [[nodiscard]] LogLevel getLogLevel();
172
+
173
+ } // namespace momentum
@@ -0,0 +1,17 @@
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
+ #if defined(MOMENTUM_WITH_XR_LOGGER)
11
+
12
+ // The file to include in header files. Used as XR_LOGCI(MOMENTUM_LOG_CHANNEL, "message");
13
+
14
+ #include <logging/Log.h>
15
+ #define MOMENTUM_LOG_CHANNEL "MOMENTUM"
16
+
17
+ #endif
@@ -0,0 +1,71 @@
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 <memory>
11
+
12
+ // Define smart pointers for a type
13
+ #ifndef MOMENTUM_DEFINE_POINTERS
14
+ #define MOMENTUM_DEFINE_POINTERS(x) \
15
+ using x##_p = ::std::shared_ptr<x>; \
16
+ using x##_u = ::std::unique_ptr<x>; \
17
+ using x##_w = ::std::weak_ptr<x>; \
18
+ using x##_const_p = ::std::shared_ptr<const x>; \
19
+ using x##_const_u = ::std::unique_ptr<const x>; \
20
+ using x##_const_w = ::std::weak_ptr<const x>;
21
+ #endif // MOMENTUM_DEFINE_POINTERS
22
+
23
+ // Forward-declare a struct, define smart pointers
24
+ #ifndef MOMENTUM_FWD_DECLARE_STRUCT
25
+ #define MOMENTUM_FWD_DECLARE_STRUCT(x) \
26
+ struct x; \
27
+ MOMENTUM_DEFINE_POINTERS(x);
28
+ #endif // MOMENTUM_FWD_DECLARE_STRUCT
29
+
30
+ // Forward-declare a class, define smart pointers
31
+ #ifndef MOMENTUM_FWD_DECLARE_CLASS
32
+ // NOLINTBEGIN(bugprone-macro-parentheses)
33
+ #define MOMENTUM_FWD_DECLARE_CLASS(x) \
34
+ class x; \
35
+ MOMENTUM_DEFINE_POINTERS(x)
36
+ // NOLINTEND(bugprone-macro-parentheses)
37
+ #endif // MOMENTUM_FWD_DECLARE_CLASS
38
+
39
+ // Forward-declare a templated class, define smart pointers for the class and its variants
40
+ // Use the standard backward-compatible naming scheme:
41
+ // template <typename T> class BarT;
42
+ // using Bar = BarT<float>;
43
+ // using Bard = BarT<double>;
44
+ #ifndef MOMENTUM_FWD_DECLARE_TEMPLATE_CLASS
45
+ // NOLINTBEGIN(bugprone-macro-parentheses)
46
+ #define MOMENTUM_FWD_DECLARE_TEMPLATE_CLASS(x) \
47
+ template <typename T> \
48
+ class x##T; \
49
+ using x = x##T<float>; \
50
+ using x##d = x##T<double>; \
51
+ MOMENTUM_DEFINE_POINTERS(x) \
52
+ MOMENTUM_DEFINE_POINTERS(x##d)
53
+ // NOLINTEND(bugprone-macro-parentheses)
54
+ #endif // MOMENTUM_FWD_DECLARE_TEMPLATE_CLASS
55
+
56
+ // Forward-declare a templated struct, define smart pointers for the struct and its variants
57
+ // Use the standard backward-compatible naming scheme:
58
+ // template <typename T> struct BarT;
59
+ // using Bar = BarT<float>;
60
+ // using Bard = BarT<double>;
61
+ #ifndef MOMENTUM_FWD_DECLARE_TEMPLATE_STRUCT
62
+ // NOLINTBEGIN(bugprone-macro-parentheses)
63
+ #define MOMENTUM_FWD_DECLARE_TEMPLATE_STRUCT(x) \
64
+ template <typename T> \
65
+ struct x##T; \
66
+ using x = x##T<float>; \
67
+ using x##d = x##T<double>; \
68
+ MOMENTUM_DEFINE_POINTERS(x) \
69
+ MOMENTUM_DEFINE_POINTERS(x##d)
70
+ // NOLINTEND(bugprone-macro-parentheses)
71
+ #endif // MOMENTUM_FWD_DECLARE_TEMPLATE_STRUCT
@@ -0,0 +1,79 @@
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
+ #if defined(MOMENTUM_WITH_XR_PROFILER)
11
+
12
+ #include <arvr/libraries/profile_redirect/annotate.hpp>
13
+
14
+ #define MT_PROFILE_FUNCTION() XR_PROFILE_FUNCTION()
15
+ #define MT_PROFILE_FUNCTION_CATEGORY(CATEGORY) XR_PROFILE_FUNCTION_CATEGORY(CATEGORY)
16
+ #define MT_PROFILE_EVENT(NAME) XR_PROFILE_EVENT(NAME)
17
+ #define MT_PROFILE_EVENT_DYNAMIC(NAME) XR_PROFILE_EVENT_DYNAMIC(NAME)
18
+ #define MT_PROFILE_CATEGORY(NAME, CATEGORY) XR_PROFILE_CATEGORY(NAME, CATEGORY)
19
+ #define MT_PROFILE_PREPARE_PUSH_POP() XR_PROFILE_PREPARE_PUSH_POP()
20
+ #define MT_PROFILE_PUSH(NAME) XR_PROFILE_PUSH(NAME)
21
+ #define MT_PROFILE_POP() XR_PROFILE_POP()
22
+ #define MT_PROFILE_THREAD(THREAD_NAME) XR_PROFILE_THREAD(THREAD_NAME)
23
+ #define MT_PROFILE_UPDATE() XR_PROFILE_UPDATE()
24
+ #define MT_PROFILE_BEGIN_FRAME() XR_PROFILE_BEGIN_FRAME()
25
+ #define MT_PROFILE_END_FRAME() XR_PROFILE_END_FRAME()
26
+ #define MT_PROFILE_METADATA(NAME, DATA) XR_PROFILE_METADATA(NAME, DATA)
27
+
28
+ #elif defined(MOMENTUM_WITH_TRACY_PROFILER)
29
+
30
+ #include <tracy/Tracy.hpp>
31
+ #include <tracy/TracyC.h>
32
+ #include <stack>
33
+
34
+ #define _MT_PROFILE_CONCATENATE_DETAIL(x, y) x##y
35
+ #define _MT_PROFILE_CONCATENATE(x, y) _MT_PROFILE_CONCATENATE_DETAIL(x, y)
36
+ #define _MT_PROFILE_MAKE_UNIQUE(x) _MT_PROFILE_CONCATENATE(x, __LINE__)
37
+
38
+ #define MT_PROFILE_FUNCTION() ZoneScoped
39
+ #define MT_PROFILE_FUNCTION_CATEGORY(CATEGORY)
40
+ #define MT_PROFILE_EVENT(NAME) ZoneNamedN(_MT_PROFILE_MAKE_UNIQUE(__tracy), NAME, true)
41
+ #define MT_PROFILE_EVENT_DYNAMIC(NAME) ZoneTransientN(_MT_PROFILE_MAKE_UNIQUE(__tracy), NAME, true)
42
+ #define MT_PROFILE_CATEGORY(NAME, CATEGORY)
43
+ #define MT_PROFILE_PREPARE_PUSH_POP() std::stack<TracyCZoneCtx> ___tracy_xr_stack
44
+ #define MT_PROFILE_PUSH(NAME) \
45
+ static const struct ___tracy_source_location_data TracyConcat( \
46
+ __tracy_source_location, TracyLine) = {NAME, __func__, TracyFile, (uint32_t)TracyLine, 0}; \
47
+ ___tracy_xr_stack.push( \
48
+ ___tracy_emit_zone_begin(&TracyConcat(__tracy_source_location, TracyLine), true));
49
+ #define MT_PROFILE_POP() \
50
+ TracyCZoneEnd(___tracy_xr_stack.top()); \
51
+ ___tracy_xr_stack.pop()
52
+ #define MT_PROFILE_THREAD(THREAD_NAME) \
53
+ { \
54
+ /* support both std::string and c strings */ \
55
+ std::string threadNameStr(THREAD_NAME); \
56
+ TracyCSetThreadName(threadNameStr.c_str()); \
57
+ }
58
+ #define MT_PROFILE_UPDATE()
59
+ #define MT_PROFILE_BEGIN_FRAME() FrameMark
60
+ #define MT_PROFILE_END_FRAME()
61
+ #define MT_PROFILE_METADATA(NAME, DATA)
62
+
63
+ #else
64
+
65
+ #define MT_PROFILE_FUNCTION()
66
+ #define MT_PROFILE_FUNCTION_CATEGORY(CATEGORY)
67
+ #define MT_PROFILE_EVENT(NAME)
68
+ #define MT_PROFILE_EVENT_DYNAMIC(NAME)
69
+ #define MT_PROFILE_CATEGORY(NAME, CATEGORY)
70
+ #define MT_PROFILE_PREPARE_PUSH_POP()
71
+ #define MT_PROFILE_PUSH(NAME)
72
+ #define MT_PROFILE_POP()
73
+ #define MT_PROFILE_THREAD(THREAD_NAME)
74
+ #define MT_PROFILE_UPDATE()
75
+ #define MT_PROFILE_BEGIN_FRAME()
76
+ #define MT_PROFILE_END_FRAME()
77
+ #define MT_PROFILE_METADATA(NAME, DATA)
78
+
79
+ #endif
@@ -0,0 +1,37 @@
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 <indicators/progress_bar.hpp>
11
+
12
+ #include <string>
13
+
14
+ namespace momentum {
15
+
16
+ // A simple progress bar that prints hash marks (e.g., "Name [===> ] 60%")
17
+ class ProgressBar {
18
+ public:
19
+ /// @param prefix Displayed prefix
20
+ /// @param numOperations Total operations (determines progress ratio)
21
+ ProgressBar(const std::string& prefix, size_t numOperations);
22
+
23
+ /// Increments the progress by the given count (default 1)
24
+ void increment(size_t count = 1);
25
+
26
+ /// Sets the progress to the given count
27
+ void set(size_t count);
28
+
29
+ /// Returns the current progress in the range [0, 100]
30
+ [[nodiscard]] size_t getCurrentProgress();
31
+
32
+ private:
33
+ static constexpr size_t kMaxWidth = 80;
34
+ indicators::ProgressBar bar_;
35
+ };
36
+
37
+ } // namespace momentum
@@ -0,0 +1,52 @@
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 <string>
11
+ #include <string_view>
12
+ #include <vector>
13
+
14
+ namespace momentum {
15
+
16
+ /// Returns a copy of the string from which all the characters in whiteChars
17
+ /// at the beginning or at the end of the string have been removed.
18
+ /// @tparam StringType: The type of the string to trim (e.g., std::string, std::string_view)
19
+ /// @param text: The string to trim
20
+ /// @param whiteChars: A series of 1-byte characters to remove
21
+ /// @return The trimmed string
22
+ template <typename StringType>
23
+ [[nodiscard]] StringType trim(const StringType& text, const char* whiteChars = " \t");
24
+
25
+ /// Returns a copy of the string from which all the characters in whiteChars
26
+ /// at the beginning or at the end of the string have been removed.
27
+ /// @param text: The string to trim (null-terminated)
28
+ /// @param whiteChars: A series of 1-byte characters to remove
29
+ /// @return The trimmed string
30
+ [[nodiscard]] std::string trim(const char* text, const char* whiteChars = " \t");
31
+
32
+ /// Tokenize a string using the specified delimiters.
33
+ ///
34
+ /// @param inputString The string to tokenize.
35
+ /// @param delimiters The string containing delimiter characters.
36
+ /// @param trim Whether to trim spaces around the tokens (default: true).
37
+ /// @return A vector of tokenized strings.
38
+ std::vector<std::string> tokenize(
39
+ const std::string& inputString,
40
+ const std::string& delimiters = " \t\r\n",
41
+ bool trim = true);
42
+
43
+ /// Tokenize a string_view using the specified delimiters.
44
+ ///
45
+ /// @param inputString The string_view to tokenize.
46
+ /// @param delimiters The string_view containing delimiter characters.
47
+ /// @param trim Whether to trim spaces around the tokens (default: true).
48
+ /// @return A vector of tokenized string_views.
49
+ std::vector<std::string_view>
50
+ tokenize(std::string_view inputString, std::string_view delimiters = " \t\r\n", bool trim = true);
51
+
52
+ } // namespace momentum
@@ -0,0 +1,73 @@
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_transform.h>
11
+ #include <momentum/character/skeleton_state.h>
12
+
13
+ #include <ceres/jet.h>
14
+ #include <Eigen/Core>
15
+
16
+ namespace momentum {
17
+
18
+ template <typename T, typename T2>
19
+ Eigen::Vector3<T>
20
+ getRotationDerivative(const JointStateT<T2>& js, const size_t index, const Eigen::Vector3<T>& ref) {
21
+ return js.rotationAxis.col(index).cross(ref);
22
+ }
23
+
24
+ template <typename T, typename T2>
25
+ Eigen::Vector3<T> getScaleDerivative(const JointStateT<T2>& js, const Eigen::Vector3<T>& ref) {
26
+ (void)js;
27
+ return ref * ln2<T2>();
28
+ }
29
+
30
+ template <typename T, int N>
31
+ Eigen::Matrix<ceres::Jet<T, N>, N, 1> buildJetVec(const Eigen::Matrix<T, N, 1>& v) {
32
+ Eigen::Matrix<ceres::Jet<T, N>, N, 1> result;
33
+ for (int k = 0; k < N; ++k) {
34
+ result(k).a = v(k);
35
+ result(k).v.setZero();
36
+ result(k).v(k) = 1;
37
+ }
38
+
39
+ return result;
40
+ }
41
+
42
+ template <typename T, int Rows, int Cols>
43
+ Eigen::Matrix<ceres::Jet<T, Cols * Rows>, Rows, Cols> buildJetMat(
44
+ const Eigen::Matrix<T, Rows, Cols>& m) {
45
+ Eigen::Matrix<ceres::Jet<T, Cols * Rows>, Rows, Cols> result;
46
+ for (int iRow = 0; iRow < Rows; ++iRow) {
47
+ for (int jCol = 0; jCol < Cols; ++jCol) {
48
+ result(iRow, jCol).a = m(iRow, jCol);
49
+ result(iRow, jCol).v.setZero();
50
+ result(iRow, jCol).v(iRow * Cols + jCol) = 1;
51
+ }
52
+ }
53
+ return result;
54
+ }
55
+
56
+ template <typename T, typename T2>
57
+ T times_parameterTransform_times_v(
58
+ const T& value,
59
+ const size_t jointParamIdx,
60
+ const ParameterTransform& parameterTransform,
61
+ Eigen::Ref<const Eigen::VectorX<T2>> v) {
62
+ T result = T();
63
+ for (auto index = parameterTransform.transform.outerIndexPtr()[jointParamIdx];
64
+ index < parameterTransform.transform.outerIndexPtr()[jointParamIdx + 1];
65
+ ++index) {
66
+ result += value * static_cast<T2>(parameterTransform.transform.valuePtr()[index]) *
67
+ v[parameterTransform.transform.innerIndexPtr()[index]];
68
+ }
69
+
70
+ return result;
71
+ }
72
+
73
+ } // namespace momentum
@@ -0,0 +1,58 @@
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/character_solver/skeleton_error_function.h>
12
+ #include <momentum/character_solver/skeleton_solver_function.h>
13
+ #include <momentum/diff_ik/fwd.h>
14
+
15
+ #include <unordered_map>
16
+ #include <vector>
17
+
18
+ namespace momentum {
19
+
20
+ // This is going to be used within Pytorch's automatic differentiation package,
21
+ // so we will assume the existence of a scalar "loss" function that is the thing
22
+ // we are minimizing in Pytorch. To clarify:
23
+ // "Error"/Error function: the thing that momentum's IK solver is minimizing
24
+ // to compute the body pose.
25
+ // "Loss"/Loss function: the thing that Pytorch is minimizing.
26
+ // Here, we will be computing the derivative of the loss function with respect
27
+ // to all the various error function inputs, like "weight" or "target".
28
+
29
+ template <typename T>
30
+ struct ErrorFunctionDerivativesT {
31
+ std::shared_ptr<const SkeletonErrorFunctionT<T>> errorFunction = nullptr;
32
+
33
+ // Gradient of the energy wrt the global weight.
34
+ T gradWeight = 0;
35
+
36
+ // Derivative of the energy wrt the various inputs.
37
+ std::unordered_map<std::string, Eigen::VectorX<T>> gradInputs;
38
+ };
39
+
40
+ // Takes in the derivative of the loss wrt the model parameters and
41
+ // computes the derivative of the loss wrt the error function inputs,
42
+ // assuming the model parameters are always the ones that (locally)
43
+ // minimize the momentum IK error.
44
+ //
45
+ // The gradient_norm here can be used to determine if the derivatives
46
+ // are valid; the computation only really works when the gradient
47
+ // (wrt the subset of parameters that are allowed to vary) is close to 0.
48
+ template <typename T>
49
+ std::vector<ErrorFunctionDerivativesT<T>> d_modelParams_d_inputs(
50
+ const Skeleton& skeleton,
51
+ const ParameterTransformT<T>& parameterTransform,
52
+ const ParameterSet& activeParams,
53
+ const ModelParametersT<T>& parameters,
54
+ SkeletonSolverFunctionT<T>& solverFunction,
55
+ Eigen::Ref<const Eigen::VectorX<T>> dLoss_dModelParams,
56
+ T* gradientRmse = nullptr);
57
+
58
+ } // namespace momentum