mocap-desktop-gui 2.1.0__py3-none-any.whl → 2.2.0__py3-none-any.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 (81) hide show
  1. mocap_desktop_gui/__init__.py +4 -4
  2. mocap_desktop_gui/axengine_1747918246_187673042.py +246 -0
  3. mocap_desktop_gui/gen/__init__.py +4 -4
  4. mocap_desktop_gui/gen/rc_icons.py +4 -4
  5. mocap_desktop_gui/gen/rc_qml.py +4 -4
  6. mocap_desktop_gui/gen/rc_style.py +4 -4
  7. mocap_desktop_gui/main.py +4 -4
  8. mocap_desktop_gui/mc/__init__.py +4 -4
  9. mocap_desktop_gui/mc/bld_fbx_2_glb.py +4 -4
  10. mocap_desktop_gui/mc/bld_utils.py +4 -4
  11. mocap_desktop_gui/mc/camera_models.py +4 -4
  12. mocap_desktop_gui/mc/gpu_info.py +4 -4
  13. mocap_desktop_gui/mc/mc_actor_profile.py +4 -4
  14. mocap_desktop_gui/mc/mc_actor_profile_model.py +4 -4
  15. mocap_desktop_gui/mc/mc_app_manager.py +4 -4
  16. mocap_desktop_gui/mc/mc_auth_core.py +4 -4
  17. mocap_desktop_gui/mc/mc_calib.py +4 -4
  18. mocap_desktop_gui/mc/mc_camera_views_model.py +4 -4
  19. mocap_desktop_gui/mc/mc_cloud_service.py +4 -4
  20. mocap_desktop_gui/mc/mc_common_paths.py +4 -4
  21. mocap_desktop_gui/mc/mc_context.py +4 -4
  22. mocap_desktop_gui/mc/mc_diagnosis.py +4 -4
  23. mocap_desktop_gui/mc/mc_error_codes.py +4 -4
  24. mocap_desktop_gui/mc/mc_file_util.py +4 -4
  25. mocap_desktop_gui/mc/mc_import_folder.py +4 -4
  26. mocap_desktop_gui/mc/mc_mocap_models.py +18 -0
  27. mocap_desktop_gui/mc/mc_project.py +4 -4
  28. mocap_desktop_gui/mc/mc_project_manager.py +4 -4
  29. mocap_desktop_gui/mc/mc_qml_defines.py +4 -4
  30. mocap_desktop_gui/mc/mc_rig.py +4 -4
  31. mocap_desktop_gui/mc/mc_scene_3d_service.py +4 -4
  32. mocap_desktop_gui/mc/mc_sync_media_player.py +4 -4
  33. mocap_desktop_gui/mc/mc_sync_video_decoder_service.py +4 -4
  34. mocap_desktop_gui/mc/mc_sync_video_paint_item.py +4 -4
  35. mocap_desktop_gui/mc/mc_take.py +4 -4
  36. mocap_desktop_gui/mc/mc_take_cloud_job.py +4 -4
  37. mocap_desktop_gui/mc/mc_take_cloud_job_action.py +3 -3
  38. mocap_desktop_gui/mc/mc_take_cloud_job_calib.py +4 -4
  39. mocap_desktop_gui/mc/mc_take_list_model.py +4 -4
  40. mocap_desktop_gui/mc/mc_take_local_job.py +4 -4
  41. mocap_desktop_gui/mc/mc_take_local_job_action.py +4 -4
  42. mocap_desktop_gui/mc/mc_take_local_job_calib.py +4 -4
  43. mocap_desktop_gui/mc/mc_take_local_job_service.py +4 -4
  44. mocap_desktop_gui/mc/mc_take_run.py +4 -4
  45. mocap_desktop_gui/mc/mc_take_run_common.py +4 -4
  46. mocap_desktop_gui/mc/mc_take_run_data_prep.py +4 -4
  47. mocap_desktop_gui/mc/mc_take_run_settings.py +4 -4
  48. mocap_desktop_gui/mc/mc_take_runs_cloud_manager.py +4 -4
  49. mocap_desktop_gui/mc/mc_take_runs_local_manager.py +4 -4
  50. mocap_desktop_gui/mc/mc_take_runs_manager.py +4 -4
  51. mocap_desktop_gui/mc/mc_take_settings.py +4 -4
  52. mocap_desktop_gui/mc/mc_take_settings_action.py +4 -4
  53. mocap_desktop_gui/mc/mc_take_video_model.py +4 -4
  54. mocap_desktop_gui/mc/mc_task_trt_engine_gen.py +4 -4
  55. mocap_desktop_gui/mc/mc_video.py +4 -4
  56. mocap_desktop_gui/mc/mc_video_file_parser.py +4 -4
  57. mocap_desktop_gui/mc/mc_video_manager.py +4 -4
  58. mocap_desktop_gui/mc/mc_video_uploader.py +4 -4
  59. mocap_desktop_gui/mc/mc_videos_uploader.py +4 -4
  60. mocap_desktop_gui/mc/mc_worker.py +4 -4
  61. mocap_desktop_gui/mc/qml_engine.py +4 -4
  62. mocap_desktop_gui/mc/rig/default/move_mo/Move_Mo.blend +0 -0
  63. mocap_desktop_gui/mc/rig/default/move_mo/mapping_body.csv +0 -0
  64. mocap_desktop_gui/mc/rig/default/move_mo/mapping_fingers.csv +0 -0
  65. mocap_desktop_gui/mc/rig/default/move_ve/{move_ve.blend → Move_Ve.blend} +0 -0
  66. mocap_desktop_gui/mc/rig/default/move_ve/mapping_body.csv +0 -0
  67. mocap_desktop_gui/mc/rig/default/move_ve/mapping_fingers.csv +0 -0
  68. mocap_desktop_gui/mc/rig/rig_path.py +4 -4
  69. mocap_desktop_gui/mc/settings/camera_models.yaml +19 -3
  70. mocap_desktop_gui/mc/settings/settings_action.yaml +11 -9
  71. mocap_desktop_gui/mc/settings/settings_action_m2.yaml +381 -0
  72. mocap_desktop_gui/mc/settings/settings_path.py +4 -4
  73. mocap_desktop_gui/mc/util.py +4 -4
  74. mocap_desktop_gui/sample.py +4 -4
  75. {mocap_desktop_gui-2.1.0.dist-info → mocap_desktop_gui-2.2.0.dist-info}/METADATA +1 -1
  76. {mocap_desktop_gui-2.1.0.dist-info → mocap_desktop_gui-2.2.0.dist-info}/RECORD +74 -73
  77. mocap_desktop_gui/axengine_1745938658_2002886115.py +0 -246
  78. mocap_desktop_gui/mc/rig/default/move_mo/desktop.ini +0 -3
  79. mocap_desktop_gui/mc/rig/default/move_mo/move_mo.blend +0 -0
  80. {mocap_desktop_gui-2.1.0.dist-info → mocap_desktop_gui-2.2.0.dist-info}/WHEEL +0 -0
  81. {mocap_desktop_gui-2.1.0.dist-info → mocap_desktop_gui-2.2.0.dist-info}/entry_points.txt +0 -0
@@ -2,17 +2,17 @@ import os as _os
2
2
  import sys as _sys
3
3
  _axeSearchPath = _os.path.dirname(_os.path.abspath(__file__))
4
4
  while not _os.path.exists(_os.path.join(_axeSearchPath,
5
- 'axengine_1745938658_2002886115.py')):
5
+ 'axengine_1747918246_187673042.py')):
6
6
  _newAxeSearchPath = _os.path.normpath(_os.path.join(_axeSearchPath, '..'))
7
7
  if _newAxeSearchPath == _axeSearchPath or len(_axeSearchPath) == 0:
8
8
  break
9
9
  _axeSearchPath = _newAxeSearchPath
10
10
  try:
11
11
  _sys.path.append(_axeSearchPath)
12
- import axengine_1745938658_2002886115 as _axengine
12
+ import axengine_1747918246_187673042 as _axengine
13
13
  except Exception as e:
14
14
  raise Exception('Failed to load AxEngine!') from e
15
15
  finally:
16
16
  _sys.path.pop()
17
- from axengine_1745938658_2002886115 import WupiError, WupiLicenseError, WupiErrorCode
18
- _axengine._axe_run(192, globals())
17
+ from axengine_1747918246_187673042 import WupiError, WupiLicenseError, WupiErrorCode
18
+ _axengine._axe_run(713, globals())
@@ -2,17 +2,17 @@ import os as _os
2
2
  import sys as _sys
3
3
  _axeSearchPath = _os.path.dirname(_os.path.abspath(__file__))
4
4
  while not _os.path.exists(_os.path.join(_axeSearchPath,
5
- 'axengine_1745938658_2002886115.py')):
5
+ 'axengine_1747918246_187673042.py')):
6
6
  _newAxeSearchPath = _os.path.normpath(_os.path.join(_axeSearchPath, '..'))
7
7
  if _newAxeSearchPath == _axeSearchPath or len(_axeSearchPath) == 0:
8
8
  break
9
9
  _axeSearchPath = _newAxeSearchPath
10
10
  try:
11
11
  _sys.path.append(_axeSearchPath)
12
- import axengine_1745938658_2002886115 as _axengine
12
+ import axengine_1747918246_187673042 as _axengine
13
13
  except Exception as e:
14
14
  raise Exception('Failed to load AxEngine!') from e
15
15
  finally:
16
16
  _sys.path.pop()
17
- from axengine_1745938658_2002886115 import WupiError, WupiLicenseError, WupiErrorCode
18
- _axengine._axe_run(349, globals())
17
+ from axengine_1747918246_187673042 import WupiError, WupiLicenseError, WupiErrorCode
18
+ _axengine._axe_run(1185, globals())
@@ -2,17 +2,17 @@ import os as _os
2
2
  import sys as _sys
3
3
  _axeSearchPath = _os.path.dirname(_os.path.abspath(__file__))
4
4
  while not _os.path.exists(_os.path.join(_axeSearchPath,
5
- 'axengine_1745938658_2002886115.py')):
5
+ 'axengine_1747918246_187673042.py')):
6
6
  _newAxeSearchPath = _os.path.normpath(_os.path.join(_axeSearchPath, '..'))
7
7
  if _newAxeSearchPath == _axeSearchPath or len(_axeSearchPath) == 0:
8
8
  break
9
9
  _axeSearchPath = _newAxeSearchPath
10
10
  try:
11
11
  _sys.path.append(_axeSearchPath)
12
- import axengine_1745938658_2002886115 as _axengine
12
+ import axengine_1747918246_187673042 as _axengine
13
13
  except Exception as e:
14
14
  raise Exception('Failed to load AxEngine!') from e
15
15
  finally:
16
16
  _sys.path.pop()
17
- from axengine_1745938658_2002886115 import WupiError, WupiLicenseError, WupiErrorCode
18
- _axengine._axe_run(1035, globals())
17
+ from axengine_1747918246_187673042 import WupiError, WupiLicenseError, WupiErrorCode
18
+ _axengine._axe_run(290, globals())
File without changes
File without changes
@@ -2,17 +2,17 @@ import os as _os
2
2
  import sys as _sys
3
3
  _axeSearchPath = _os.path.dirname(_os.path.abspath(__file__))
4
4
  while not _os.path.exists(_os.path.join(_axeSearchPath,
5
- 'axengine_1745938658_2002886115.py')):
5
+ 'axengine_1747918246_187673042.py')):
6
6
  _newAxeSearchPath = _os.path.normpath(_os.path.join(_axeSearchPath, '..'))
7
7
  if _newAxeSearchPath == _axeSearchPath or len(_axeSearchPath) == 0:
8
8
  break
9
9
  _axeSearchPath = _newAxeSearchPath
10
10
  try:
11
11
  _sys.path.append(_axeSearchPath)
12
- import axengine_1745938658_2002886115 as _axengine
12
+ import axengine_1747918246_187673042 as _axengine
13
13
  except Exception as e:
14
14
  raise Exception('Failed to load AxEngine!') from e
15
15
  finally:
16
16
  _sys.path.pop()
17
- from axengine_1745938658_2002886115 import WupiError, WupiLicenseError, WupiErrorCode
18
- _axengine._axe_run(424, globals())
17
+ from axengine_1747918246_187673042 import WupiError, WupiLicenseError, WupiErrorCode
18
+ _axengine._axe_run(35, globals())
@@ -136,8 +136,8 @@ GoProHero13_FHD:
136
136
  isCloud: false
137
137
 
138
138
  #GoProHero13_2_7K:
139
- # K: [ [ 1.28712206e+03, 0.00000000e00, 1.35139006e+03 ], [ 0.00000000e00, 1.2869703e+03, 7.55777390e+02 ], [ 0.00000000e00, 0.00000000e00, 1.00000000e00 ] ]
140
- # name: "goprohero13-2.7K"
139
+ # K: [ [ 1.28712206e+03, 0.00000000e00, 1.35139006e+03 ], [ 0.00000000e00, 1.2869703e+03, 7.55777390e+02 ], [ 0.00000000e00, 0.00000000e00, 1.00000000e00 ] ]
140
+ # name: "goprohero13-2-7K"
141
141
  # displayName: "GoPro Hero 13 2.7K"
142
142
  # resolution: [2704, 1520]
143
143
  # isLocal: true
@@ -205,4 +205,20 @@ OptiTrack_Prime_Color_12mm_FHD:
205
205
  displayName: "OptiTrack Prime Color 12mm FHD"
206
206
  resolution: [1920, 1080]
207
207
  isLocal: true
208
- isCloud: false
208
+ isCloud: false
209
+
210
+ Experimental_Mode_FHD:
211
+ K: [ [ 913.31952603, 0, 966.48029123 ],[ 0, 928.06063871, 536.91995022 ],[ 0.0, 0.0, 1.0 ] ]
212
+ name: "moveai-experimental"
213
+ displayName: "Experimental Mode FHD"
214
+ resolution: [1920, 1080]
215
+ isLocal: true
216
+ isCloud: true
217
+
218
+ Experimental_Mode_4K:
219
+ K: [ [ 1.83729901e03, 0.0, 1.93477133e03 ], [ 0.0, 1.83729901e03, 1.08160072e03 ], [ 0.0, 0.0, 1.0 ] ]
220
+ name: "moveai-experimental-4k"
221
+ displayName: "Experimental Mode 4K"
222
+ resolution: [3840, 2160]
223
+ isLocal: true
224
+ isCloud: true
@@ -254,9 +254,9 @@ ops_cfg:
254
254
  use_2d_pose_obs: true
255
255
  use_spine_observations: false
256
256
  run_second_kalman_pass: true
257
- run_locomotion_model: true
257
+ run_locomotion_model: false
258
258
  use_foot_contact: true
259
- use_dynamics: false
259
+ use_dynamics: true
260
260
  sync_mobs_observations: true
261
261
  planar_floor_cfg:
262
262
  assume_planar_floor: false
@@ -311,13 +311,15 @@ ops_cfg:
311
311
 
312
312
  OpsMarkersToBlend:
313
313
  export_fbx: true
314
+ export_gltf: true
314
315
  inputs:
315
- video_dir: '~/MOX_projects/videos_processed'
316
- props_assets_dir: 'addon_bld/kalman/props' # relative to root_code_dir
317
- marker_kalman_dir: '~/MOX_projects/markers_kalman'
316
+ video_dir: ~/MOX_projects/videos_processed
317
+ marker_kalman_dir: ~/MOX_projects/markers_kalman
318
+ marker_track_path: ~/MOX_projects/markers_kalman
318
319
  outputs:
319
- log_dir: '~/MOX_projects/log'
320
- props_dir: '~/MOX_projects/props_anims'
320
+ log_dir: ~/MOX_projects/log
321
+ props_dir: ~/MOX_projects/props_anims
322
+ export_dir: ~/MOX_projects/blender
321
323
 
322
324
 
323
325
  OpsBlenderFBXExport:
@@ -355,8 +357,8 @@ ops_cfg:
355
357
  kalman_dir: ~/MOX_projects/kalman
356
358
  video_dir: ~/MOX_projects/videos_processed
357
359
  rig_dir: ~/MOX_projects/rig
358
- fingers_dir: null
359
- props_dir: null
360
+ fingers_dir: ~/MOX_projects/hands
361
+ props_dir: ~/MOX_projects/props_anims
360
362
  actor_dir: ~/MOX_projects/actor_profile
361
363
  jersey_nums_mapping_path: null
362
364
  state_paths: {}
@@ -0,0 +1,381 @@
1
+ general_cfg:
2
+ endpoint: arn:aws:sns:eu-west-1:103680339861:Imagebuilder
3
+ processing_job_guid: ''
4
+ payload:
5
+ foo: bar
6
+ ops:
7
+ OpsInputVideosAudios: false #
8
+ OpsSyncMultiviewVideos: true
9
+ OpsCorrectCalib: false
10
+ OpsMocap: true
11
+ # ball tracking
12
+ OpsDetectObjects: false
13
+ OpsDetectMarkerObjects: false
14
+ OpsMarkerKalmanFilter: false
15
+ OpsMarkersToBlend: false
16
+
17
+ OpsHandsGen2: false
18
+ OpsPrepKalmanV2: true
19
+ OpsKalmanV2: true
20
+ OpsBlendFilesCreation: true
21
+ OpsAnimationFilesExports: true
22
+ OpsRender: true
23
+ OpsZipData: false
24
+ OpsUploadOutputs: false
25
+
26
+ failure_ops:
27
+ - OpsZipData
28
+ - OpsUploadOutputs
29
+ ops_cfg:
30
+ OpsInputVideosAudios:
31
+ is_gopro: false
32
+ inputs:
33
+ video_raw_dir: '~/MOX_projects/videos'
34
+ outputs:
35
+ log_dir: '~/MOX_projects/log'
36
+
37
+ OpsSyncMultiviewVideos:
38
+ # auto sync settings
39
+ # set action_ss and action_to if you want to crop a specific time range in input videos.
40
+ # warning: 'ss' and 'to' must be specified on the video whose lag is smallest; otherwise, it could fail
41
+ # for the case when the lag between videos are large.
42
+ # example. action_start_time: '20.15' action_end_time: '30.35' means action stats from the seconds 20.15 to 30.35
43
+ action_start_time: 0 # start time of the action in format seconds.millisecond. ffmpeg -ss
44
+ action_end_time: "" # end time of the action in the format seconds.millisecond. ffmpeg -to
45
+ search_win: [ 2.0, 6.0 ] # clap hand time range, in seconds. If no range is specified then search_win
46
+ # is calculated automatically in the code based on clapping.
47
+ delete_input_videos: false
48
+ inputs:
49
+ video_raw_dir: '~/MOX_projects/videos'
50
+ outputs:
51
+ log_dir: '~/MOX_projects/log'
52
+ video_dir: '~/MOX_projects/videos_processed'
53
+ sync_vis_dir: '~/MOX_projects/sync_vis'
54
+ # Use iphone metadata to sync
55
+ iphone_sync:
56
+ use_host_timecode: false
57
+ use_tentacle: false
58
+ # manual sync settings
59
+ manual_sync:
60
+ active: false # set it to true if you want to run manual sync given delay in timestamp
61
+ # seconds.milliseconds. relative offset. earliest camera should have ss = 0.0
62
+ cams_lag: # ffmpeg -ss
63
+ cam01: 0.0
64
+ #cam02: 0.02
65
+ #cam03: 0.04
66
+ #....
67
+ # all cameras share the same duration and starting time
68
+ base_ss: 0.0 # seconds.milliseconds
69
+ duration: 0.0 # ffmpeg -t seconds.milliseconds. 0.0 means the whole video.
70
+ win_len_samples: 1024
71
+ win_step_sec: 0.001
72
+ use_audio_files: false
73
+ timecode: false
74
+
75
+ OpsMocap:
76
+ max_actor_number: 1
77
+ enable_vis_debug: true # expensive video debugging
78
+ vis_debug_rate_ms: 1000 # one frame every second
79
+ enable_new_track_vis_debug: true # cheap debugging that output the first frame of a new cross-view match
80
+ max_cpp_running_time_minutes: 2000
81
+ use_actor_profile_if_avail: false
82
+ use_cuda_decoder: true
83
+ use_jersey_id_prediction: false
84
+ MocapCppParams:
85
+ DebugCaptureVolumeVisDir: ''
86
+ DebugLabeledBBoxVisDir: ''
87
+ CudaGraphInference: false
88
+
89
+ YoloModelMaxBs: -1
90
+ YoloModelType: yolov5m
91
+ YoloModelFp16: true
92
+
93
+ JerseyModelName: jersey_model_7
94
+ DetectJerseyNumber: false
95
+ DetectJerseyFramePeriod: 3
96
+
97
+ PoseModelFp16: true
98
+ UseVerticalPoseAlignment: false
99
+ PoseModelMaxBs: -1
100
+ Single2DPoseModelName: pose_2D_vit_large_moveai29
101
+ use_temporal_2D_pose_refinement: false
102
+ Temporal2DPoseModelName: pose_2D_refine_3
103
+ UseTemporalRefinementPostProcess: false
104
+ TemporalRefinementPostProcessQueueSize: 4
105
+
106
+ NewTrackRequireHandOverShoulder: false
107
+
108
+ NewTrackCheckInsideCaptureVolume: true
109
+ NewTrackMinCaptureVolumeEdgeDist: 0.0
110
+ NewTrackMinReprojectionError: 0.15
111
+ NewTrackMinMultiviewKeypoints: 3
112
+ NewTrackMinCameraNumbers: 3
113
+ NewTrackMinDistanceFromOthers: 0.25
114
+
115
+ ActorProfileMatchMaxTimestampDifference: 1000
116
+ ActorProfileMatchMinIoU: 0.25
117
+ ActorProfileMatchMinValidObsCount: 1
118
+
119
+ NumMaxPeople: 1
120
+ DebugNumMaxActors: -1
121
+ NumMaxBoundingBoxPerFrameFactor: 4
122
+
123
+ TrackingBBOX_LPF_Parameter: 0.1
124
+ PoseTorsoDir_LPF_Parameter: 0.1
125
+ PoseKpts_LPF_Parameter: 0.1
126
+ BBOXVerticalScalingFactor: 1.0
127
+ BBOXHorizontalScalingFactor: 1.0
128
+
129
+ ExportSpineHeatmap: false
130
+
131
+ Clamp2DBBoxSizeChange: true
132
+ MaxBBSizeChangePercentage: 0.1
133
+
134
+ TrackFilterTopKBest2DPoses: 4
135
+ FilterBadObjectAssociation: false
136
+ FilterBadObjectAssociationTemporalDstFactor: 1.5
137
+ FilterBadObjectAssociationBBoxWidthFactor: 0.4
138
+
139
+ Clamp3DJointLocationChange: true
140
+ Max3DJointLocationChange: 0.5
141
+ Max3DJointLocationMaxAcclerationFactor: 5.0
142
+ ClampJointStateChange: true
143
+ MaxJointStateChange: 0.5
144
+ MaxJointStateMaxAcclerationFactor: 5.0
145
+
146
+ UseKalmanFilter: false
147
+ KalmanLatencyUpdateFrames: 0
148
+ NumKalmanTransitionFrames: 20
149
+ NumFramesBeforeKalmanFilter: 50
150
+
151
+ NumBoneLengthOptimzationFrames: 50
152
+ UseBoneLengthFromTriangulation: true
153
+
154
+ PinoStateUpdateFactor: 0.0
155
+ MaxPoseOptimizeIteration: 10
156
+ MaxBoneOptimizeIteration: 10
157
+ PoseFunctionTolerance: 0.01
158
+ PoseParameterTolerance: 0.01
159
+ PoseSolverHeightNormalization: true
160
+ BoneLengthFunctionTolerance: 0.01
161
+ BoneLengthParameterTolerance: 0.01
162
+ NumCeresThreads: 4
163
+
164
+ CalcCircularCaptureAreaFrom2CameraPositions: true
165
+ CalcCaptureAreaFromCameraPositions: true
166
+
167
+ inputs:
168
+ video_dir:
169
+ ~/MOX_projects/videos_processed
170
+ calib_pkl_dir:
171
+ ~/MOX_projects/calib
172
+ mocap_path: /usr/local/moveai/bin/mocap-nogui
173
+ settings_path: /usr/local/moveai/settings_rt.ini
174
+ actor_profile_dir:
175
+ actor_prior_obs_dir:
176
+ outputs:
177
+ log_dir: ~/MOX_projects/log
178
+ mocap_result_dir:
179
+ ~/MOX_projects/mocap_result
180
+ mocap_new_track_debug_dir:
181
+ ~/MOX_projects/mocap_new_track_debug
182
+ mocap_viz_debug_dir:
183
+ ~/MOX_projects/mocap_viz_debug
184
+ vis_calib_area_dir:
185
+ ~/MOX_projects/vis_calib_area
186
+ prelabelled_bb_dir:
187
+ ~/MOX_projects/prelabelled_bb
188
+ pose2d_dir:
189
+ ~/MOX_projects/pose2d_track
190
+ calib_yaml_dir:
191
+ ~/MOX_projects/mocap_calib
192
+ OpsHandsGen2:
193
+ run_type: "multicam"
194
+ custom_bboxes: true
195
+ inputs:
196
+ video_dir: '~/MOX_projects/videos_processed'
197
+ pose2d_dir: '~/MOX_projects/pose2d_track'
198
+ pose3d_dir: '~/MOX_projects/pose3d_track'
199
+ calib_dir: '~/MOX_projects/calib'
200
+ outputs:
201
+ hand_dir: '~/MOX_projects/hands'
202
+ model_data_dir: '~/MOX_projects/wilor'
203
+
204
+ OpsPrepKalmanV2:
205
+ run_type: multicam
206
+ mdc_use_3d_bone_dir_obs: false
207
+ iou_threshold: 0.3
208
+ sources:
209
+ - name: vit
210
+ type: poses2d
211
+ source_dir: ~/MOX_projects/pose2d_track
212
+ location: vit
213
+ preparator_class: mocap_kalman.kalman.preparators.impl.VitPreparator
214
+ adapter_class: mocap_kalman.kalman.adapters.data_adapters.VitPoseAdapter
215
+ offsets_class: mocap_kalman.kalman.kinematics.offset_structures.ViTOffsets
216
+ measurement_class: mocap_kalman.kalman.measurement.models.PinholeModel
217
+ - name: vit_3d
218
+ type: poses3d
219
+ source_dir: ~/MOX_projects/pose3d_track
220
+ location: vit_3d
221
+ preparator_class: mocap_kalman.kalman.preparators.impl.Vit3DPreparator
222
+ adapter_class: mocap_kalman.kalman.adapters.data_adapters.VitPose3DAdapter
223
+ offsets_class: mocap_kalman.kalman.kinematics.offset_structures.ViTOffsets
224
+ measurement_class: mocap_kalman.kalman.measurement.models.SkeletalModel
225
+ - name: wilor_hands
226
+ type: hands
227
+ source_dir: ~/MOX_projects/wilor
228
+ location: wilor
229
+ preparator_class: mocap_kalman.kalman.preparators.impl.WilorPreparator
230
+ adapter_class: mocap_kalman.kalman.adapters.data_adapters.HandOrientationDataAdapter
231
+ offsets_class: mocap_kalman.kalman.kinematics.offset_structures.HandOffsets
232
+ measurement_class: mocap_kalman.kalman.measurement.models.HandOrientationModel
233
+ inputs:
234
+ calib_dir: ~/MOX_projects/calib
235
+ odometry_dir: null
236
+ outputs:
237
+ kalman_input_dir: ~/MOX_projects/kalman_inputs
238
+ calib_mono_dir: null
239
+ actor_track_mapping_dir: null
240
+
241
+ OpsKalmanV2:
242
+ bone_orient_structures: mocap_kalman.kalman.kinematics.bone_structures.MetrabsBones
243
+
244
+ stages: # observations: [POSES_2D, POSES_3D, BONE_ORIENTATIONS, SPINE, TRAJECTORY_CONTACT, PLANAR_CONTACT]
245
+ - name: first stage
246
+ transition: mocap_kalman.kalman.transition.transition.RootAdjustedStationaryTransitionModel
247
+ Q_matrix: mocap_kalman.kalman.parameters.Q_matrices.Q_Moveai_11
248
+ Q_factor: 3.5
249
+ observations: [POSES_2D, SPINE]
250
+ smooth_state: true
251
+
252
+ - name: second stage
253
+ transition: mocap_kalman.kalman.transition.transition.SimpleTransitionModel
254
+ Q_matrix: mocap_kalman.kalman.parameters.Q_matrices.Q_Moveai_11_2
255
+ Q_factor: 0.75
256
+ observations: [POSES_2D, SPINE, TRAJECTORY_CONTACT, PLANAR_CONTACT]
257
+ smooth_state: true
258
+
259
+ contact_dynamics:
260
+ use_plane_constraint: true
261
+ adjust_heel: true
262
+ stability_std_threshold: 0.02
263
+ contact_factor_threshold: 35
264
+ friction_coeff: 0.6
265
+ alpha: 0.001
266
+ lambda: 0
267
+ tanh_param_k: 1
268
+ tanh_param_n: 0.5
269
+
270
+ smoother_settings:
271
+ state_smoother_type: butterworth # ['polynomial', 'butterworth']
272
+ polynomial_window: 0.4 # in seconds
273
+ polynomial_order: 5
274
+ state_frequency_cutoff: 5 # in Hz
275
+ derivative_frequency_cutoff: 4 # in Hz
276
+ filter_order: 4
277
+
278
+ inputs:
279
+ calib_dir: ~/MOX_projects/calib
280
+ kalman_input_dir: ~/MOX_projects/kalman_inputs
281
+ input_video_dir: ~/MOX_projects/videos_processed
282
+ outputs:
283
+ kalman_dir: ~/MOX_projects/kalman
284
+ run_type: multicam
285
+
286
+ OpsBlendFilesCreation:
287
+ import_keypoints_3d: false
288
+ import_fingers: false
289
+ background_videos_import: true
290
+ background_camera_num: 0
291
+ rest_pose_on_1st_frame: false
292
+ rig_origin: feet
293
+ combine_blends: true
294
+ output_name_3d_assets: main
295
+ inputs:
296
+ calib_pkl_dir: ~/MOX_projects/calib/
297
+ kalman_dir: ~/MOX_projects/kalman/
298
+ fingers_dir: ~/MOX_projects/hands
299
+ rig_dir: ~/MOX_projects/rig/
300
+ video_dir: ~/MOX_projects/videos_processed
301
+ props_dir: ~/MOX_projects/props_anims
302
+ outputs:
303
+ blender_dir: ~/MOX_projects/blender/
304
+
305
+ OpsAnimationFilesExports:
306
+ rig_to_export: ["internal", "client"]
307
+ export_formats: ["fbx", "gltf", "usdz", "bvh", "c3d"]
308
+ use_namespaces: true
309
+ timecode_sync: false
310
+ export_fps: null
311
+ inputs:
312
+ rig_dir: ~/MOX_projects/rig/
313
+ blender_dir: ~/MOX_projects/blender/
314
+ video_dir: ~/MOX_projects/videos_processed
315
+ outputs:
316
+ output_dir: ~/MOX_projects/blender/
317
+
318
+ OpsRender:
319
+ render_resolution: [640, 360]
320
+ add_logo: true
321
+ resolution_percentage: 100
322
+ ffmpeg_container: MPEG4
323
+ render_engine: EEVEE
324
+ render_fps: 30
325
+ do_render_overlay: false
326
+ overlay_padding: 30
327
+ overlay_scale: 0.19
328
+ output_name_video: render
329
+ inputs:
330
+ video_dir: ~/MOX_projects/videos_processed
331
+ blender_dir: ~/MOX_projects/blender/
332
+ scene_3d_path: null
333
+ outputs:
334
+ output_dir: ~/MOX_projects/blender/
335
+
336
+ OpsDetectObjects:
337
+ # sort all detect bbs using area or score, then pick the first n_max_objects, if it > 0
338
+ n_max_objects: -1 # -1 for taking all object bounding boxes.
339
+ n_max_objects_selection_strategy: "area" # in ["score", "area", "score_area"]
340
+ batch_size: 8
341
+ # for YOLOV5.
342
+ conf_thres: 0.25 # NNS threshold
343
+ iou_thres: 0.45 # NNS threshold
344
+ augment: false # flipping augmentation.
345
+ yolov5_class_ids: [ 32 ]
346
+ yolov5_class_names: [ 'ball' ]
347
+ visualize: false
348
+ inputs:
349
+ video_dir: '~/MOX_projects/videos_processed'
350
+ model_path: '/usr/local/moveai/models/yolo/yolov5x_updated.pt'
351
+ outputs:
352
+ detect_dir: '~/MOX_projects/detect_obj_2d'
353
+ detect_vis_dir: '~/MOX_projects/detect_obj_2d_viz'
354
+
355
+ OpsDetectMarkerObjects:
356
+ marker_settings: [ { "object": "ball", "n_markers": 1, "n_objects": 1 } ]
357
+ inputs :
358
+ video_dir: '~/MOX_projects/videos_processed'
359
+ detect_dir: '~/MOX_projects/detect_obj_2d'
360
+ outputs:
361
+ detect_semantic_dir: '~/MOX_projects/detect_semantic_obj_2d'
362
+
363
+ OpsMarkerKalmanFilter:
364
+ marker_settings: [ { "object": "ball", "n_markers": 1, "n_objects": 1 } ]
365
+ inputs:
366
+ detect_semantic_dir: '~/MOX_projects/detect_semantic_obj_2d'
367
+ calib_pkl_dir: '~/MOX_projects/calib'
368
+ outputs:
369
+ marker_kalman_dir: '~/MOX_projects/markers_kalman'
370
+
371
+ OpsMarkersToBlend:
372
+ export_fbx: true
373
+ export_gltf: true
374
+ inputs:
375
+ video_dir: ~/MOX_projects/videos_processed
376
+ marker_kalman_dir: ~/MOX_projects/markers_kalman
377
+ marker_track_path: ~/MOX_projects/markers_kalman
378
+ outputs:
379
+ log_dir: ~/MOX_projects/log
380
+ props_dir: ~/MOX_projects/props_anims
381
+ export_dir: ~/MOX_projects/blender
@@ -2,17 +2,17 @@ import os as _os
2
2
  import sys as _sys
3
3
  _axeSearchPath = _os.path.dirname(_os.path.abspath(__file__))
4
4
  while not _os.path.exists(_os.path.join(_axeSearchPath,
5
- 'axengine_1745938658_2002886115.py')):
5
+ 'axengine_1747918246_187673042.py')):
6
6
  _newAxeSearchPath = _os.path.normpath(_os.path.join(_axeSearchPath, '..'))
7
7
  if _newAxeSearchPath == _axeSearchPath or len(_axeSearchPath) == 0:
8
8
  break
9
9
  _axeSearchPath = _newAxeSearchPath
10
10
  try:
11
11
  _sys.path.append(_axeSearchPath)
12
- import axengine_1745938658_2002886115 as _axengine
12
+ import axengine_1747918246_187673042 as _axengine
13
13
  except Exception as e:
14
14
  raise Exception('Failed to load AxEngine!') from e
15
15
  finally:
16
16
  _sys.path.pop()
17
- from axengine_1745938658_2002886115 import WupiError, WupiLicenseError, WupiErrorCode
18
- _axengine._axe_run(87, globals())
17
+ from axengine_1747918246_187673042 import WupiError, WupiLicenseError, WupiErrorCode
18
+ _axengine._axe_run(683, globals())
@@ -2,17 +2,17 @@ import os as _os
2
2
  import sys as _sys
3
3
  _axeSearchPath = _os.path.dirname(_os.path.abspath(__file__))
4
4
  while not _os.path.exists(_os.path.join(_axeSearchPath,
5
- 'axengine_1745938658_2002886115.py')):
5
+ 'axengine_1747918246_187673042.py')):
6
6
  _newAxeSearchPath = _os.path.normpath(_os.path.join(_axeSearchPath, '..'))
7
7
  if _newAxeSearchPath == _axeSearchPath or len(_axeSearchPath) == 0:
8
8
  break
9
9
  _axeSearchPath = _newAxeSearchPath
10
10
  try:
11
11
  _sys.path.append(_axeSearchPath)
12
- import axengine_1745938658_2002886115 as _axengine
12
+ import axengine_1747918246_187673042 as _axengine
13
13
  except Exception as e:
14
14
  raise Exception('Failed to load AxEngine!') from e
15
15
  finally:
16
16
  _sys.path.pop()
17
- from axengine_1745938658_2002886115 import WupiError, WupiLicenseError, WupiErrorCode
18
- _axengine._axe_run(761, globals())
17
+ from axengine_1747918246_187673042 import WupiError, WupiLicenseError, WupiErrorCode
18
+ _axengine._axe_run(375, globals())
@@ -2,17 +2,17 @@ import os as _os
2
2
  import sys as _sys
3
3
  _axeSearchPath = _os.path.dirname(_os.path.abspath(__file__))
4
4
  while not _os.path.exists(_os.path.join(_axeSearchPath,
5
- 'axengine_1745938658_2002886115.py')):
5
+ 'axengine_1747918246_187673042.py')):
6
6
  _newAxeSearchPath = _os.path.normpath(_os.path.join(_axeSearchPath, '..'))
7
7
  if _newAxeSearchPath == _axeSearchPath or len(_axeSearchPath) == 0:
8
8
  break
9
9
  _axeSearchPath = _newAxeSearchPath
10
10
  try:
11
11
  _sys.path.append(_axeSearchPath)
12
- import axengine_1745938658_2002886115 as _axengine
12
+ import axengine_1747918246_187673042 as _axengine
13
13
  except Exception as e:
14
14
  raise Exception('Failed to load AxEngine!') from e
15
15
  finally:
16
16
  _sys.path.pop()
17
- from axengine_1745938658_2002886115 import WupiError, WupiLicenseError, WupiErrorCode
18
- _axengine._axe_run(12, globals())
17
+ from axengine_1747918246_187673042 import WupiError, WupiLicenseError, WupiErrorCode
18
+ _axengine._axe_run(11, globals())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mocap-desktop-gui
3
- Version: 2.1.0
3
+ Version: 2.2.0
4
4
  Summary:
5
5
  Author: Move.ai
6
6
  Requires-Python: >=3.10,<3.13