three-mediapipe-rig 0.1.1 → 0.1.2

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 (38) hide show
  1. package/README.md +3 -1
  2. package/dist/face-tracker-utils-xt9__vBF.js +16 -0
  3. package/dist/meshcap/atlas-builder.d.ts +10 -0
  4. package/dist/meshcap/atlas-builder.d.ts.map +1 -0
  5. package/dist/meshcap/constants.d.ts +3 -0
  6. package/dist/meshcap/constants.d.ts.map +1 -0
  7. package/dist/meshcap/material.d.ts +53 -0
  8. package/dist/meshcap/material.d.ts.map +1 -0
  9. package/dist/meshcap/meshcap.d.ts +5 -0
  10. package/dist/meshcap/meshcap.d.ts.map +1 -0
  11. package/dist/meshcap/parse-mcap-file.d.ts +8 -0
  12. package/dist/meshcap/parse-mcap-file.d.ts.map +1 -0
  13. package/dist/meshcap/types.d.ts +53 -0
  14. package/dist/meshcap/types.d.ts.map +1 -0
  15. package/dist/meshcap/write-mcap-file.d.ts +3 -0
  16. package/dist/meshcap/write-mcap-file.d.ts.map +1 -0
  17. package/dist/meshcap.d.ts +2 -0
  18. package/dist/meshcap.js +316 -0
  19. package/dist/module.d.ts +1 -0
  20. package/dist/module.d.ts.map +1 -1
  21. package/dist/rigger.d.ts +2 -0
  22. package/dist/rigger.js +853 -0
  23. package/dist/tracking/BoneMapping.d.ts.map +1 -1
  24. package/dist/tracking/FaceTracker.d.ts +12 -2
  25. package/dist/tracking/FaceTracker.d.ts.map +1 -1
  26. package/dist/tracking/HandTracker.d.ts +3 -3
  27. package/dist/tracking/HandTracker.d.ts.map +1 -1
  28. package/dist/tracking/PoseTracker.d.ts +1 -1
  29. package/dist/tracking/PoseTracker.d.ts.map +1 -1
  30. package/dist/tracking/TrackerManager.d.ts +118 -0
  31. package/dist/tracking/TrackerManager.d.ts.map +1 -0
  32. package/dist/tracking/recoding/recorder.d.ts +10 -8
  33. package/dist/tracking/recoding/recorder.d.ts.map +1 -1
  34. package/dist/tracking/util/face-tracker-utils.d.ts +9 -0
  35. package/dist/tracking/util/face-tracker-utils.d.ts.map +1 -0
  36. package/package.json +17 -12
  37. package/dist/three-mediapipe-rig.js +0 -839
  38. package/dist/three-mediapipe-rig.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BoneMapping.d.ts","sourceRoot":"","sources":["../../src/tracking/BoneMapping.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAC,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAC,MAAM,CAAA;IACX,IAAI,EAAC,MAAM,CAAA;IACX,KAAK,EAAC,MAAM,CAAA;IACZ,IAAI,EAAC,MAAM,CAAA;IACX,QAAQ,EAAC,MAAM,CAAA;IAEf,IAAI,EAAC,MAAM,CAAA;IACX,QAAQ,EAAC,MAAM,CAAA;IAEf,MAAM,EAAC,MAAM,CAAA;IACb,KAAK,EAAC,MAAM,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IAEZ,MAAM,EAAC,MAAM,CAAA;IACb,KAAK,EAAC,MAAM,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IAGZ,KAAK,EAAC,MAAM,CAAA;IACZ,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,QAAQ,EAAC,MAAM,CAAA;IACf,QAAQ,EAAC,MAAM,CAAA;IACf,QAAQ,EAAC,MAAM,CAAA;IAEf,MAAM,EAAC,MAAM,CAAA;IACb,MAAM,EAAC,MAAM,CAAA;IACb,MAAM,EAAC,MAAM,CAAA;IAEb,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,KAAK,EAAC,MAAM,CAAA;IACZ,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,QAAQ,EAAC,MAAM,CAAA;IACf,QAAQ,EAAC,MAAM,CAAA;IACf,QAAQ,EAAC,MAAM,CAAA;IAEf,MAAM,EAAC,MAAM,CAAA;IACb,MAAM,EAAC,MAAM,CAAA;IACb,MAAM,EAAC,MAAM,CAAA;IAEb,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;CAEd,CAAA;AAED,eAAO,MAAM,cAAc,EAAC,OAiE3B,CAAA"}
1
+ {"version":3,"file":"BoneMapping.d.ts","sourceRoot":"","sources":["../../src/tracking/BoneMapping.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAC,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAC,MAAM,CAAA;IACX,IAAI,EAAC,MAAM,CAAA;IACX,KAAK,EAAC,MAAM,CAAA;IACZ,IAAI,EAAC,MAAM,CAAA;IACX,QAAQ,EAAC,MAAM,CAAA;IAEf,IAAI,EAAC,MAAM,CAAA;IACX,QAAQ,EAAC,MAAM,CAAA;IAEf,MAAM,EAAC,MAAM,CAAA;IACb,KAAK,EAAC,MAAM,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IAEZ,MAAM,EAAC,MAAM,CAAA;IACb,KAAK,EAAC,MAAM,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IAGZ,KAAK,EAAC,MAAM,CAAA;IACZ,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,QAAQ,EAAC,MAAM,CAAA;IACf,QAAQ,EAAC,MAAM,CAAA;IACf,QAAQ,EAAC,MAAM,CAAA;IAEf,MAAM,EAAC,MAAM,CAAA;IACb,MAAM,EAAC,MAAM,CAAA;IACb,MAAM,EAAC,MAAM,CAAA;IAEb,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,KAAK,EAAC,MAAM,CAAA;IACZ,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,QAAQ,EAAC,MAAM,CAAA;IACf,QAAQ,EAAC,MAAM,CAAA;IACf,QAAQ,EAAC,MAAM,CAAA;IAEf,MAAM,EAAC,MAAM,CAAA;IACb,MAAM,EAAC,MAAM,CAAA;IACb,MAAM,EAAC,MAAM,CAAA;IAEb,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IAEd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;IACd,OAAO,EAAC,MAAM,CAAA;CAEd,CAAA;AAED,eAAO,MAAM,cAAc,EAAC,OAmE3B,CAAA"}
@@ -3,7 +3,7 @@ import { Mesh, Object3D, Node } from 'three/webgpu';
3
3
  import { Tracker } from './Tracker';
4
4
  export type FaceTrackerConfig = {
5
5
  modelPath?: string;
6
- videoElementRef?: () => HTMLVideoElement;
6
+ videoElementRef?: () => HTMLVideoElement | undefined;
7
7
  drawLandmarks?: boolean;
8
8
  };
9
9
  export declare function loadFaceTracker(vision: any, cfg?: FaceTrackerConfig): Promise<FaceTracker>;
@@ -25,7 +25,7 @@ declare const faceMarks: {
25
25
  chin: number;
26
26
  forehead: number;
27
27
  };
28
- declare class FaceTracker extends Tracker<typeof faceMarks> {
28
+ export declare class FaceTracker extends Tracker<typeof faceMarks> {
29
29
  private faceLandmarker;
30
30
  private cfg;
31
31
  private blendshapeCategories;
@@ -47,8 +47,18 @@ declare class FaceTracker extends Tracker<typeof faceMarks> {
47
47
  *
48
48
  * @see https://github.com/google-ai-edge/mediapipe/tree/master/mediapipe/modules/face_geometry
49
49
  * @param mesh basically either the original or a clone of the canonical_face_model
50
+ * @returns an object with a disposeMaterial method that should be called when the mesh is disposed of.
50
51
  */
51
52
  bindGeometry(mesh: Mesh, setupTheMaterialYourself?: (posNode: Node, colorNode: Node) => void): {
53
+ /**
54
+ * Disposes of the material and removes events listeners on the video element.
55
+ */
56
+ disposeMaterial: () => void;
57
+ /**
58
+ * asas
59
+ * @param delta asas
60
+ * @returns
61
+ */
52
62
  update: (delta: number) => void;
53
63
  };
54
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FaceTracker.d.ts","sourceRoot":"","sources":["../../src/tracking/FaceTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,YAAY,EACZ,cAAc,EACjB,kBAAkB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAmB,IAAI,EAAE,QAAQ,EAAW,IAAI,EAA0D,MAAM,cAAc,CAAC;AACtI,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAC,MAAI,gBAAgB,CAAC;IACtC,aAAa,CAAC,EAAC,OAAO,CAAA;CACtB,CAAA;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,iBAAiB,wBAYzE;AAED;;;GAGG;AACH,QAAA,MAAM,SAAS;;;;;;;;;;;;;CAed,CAAA;AAUD,cAAM,WAAY,SAAQ,OAAO,CAAC,OAAO,SAAS,CAAC;IAOtC,OAAO,CAAC,cAAc;IAAkB,OAAO,CAAC,GAAG;IAN/D,OAAO,CAAC,oBAAoB,CAAyB;IACrD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,cAAc,CAA4B;gBAE9B,cAAc,EAAE,cAAc,EAAU,GAAG,EAAC,iBAAiB;IAQxE,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY;IAsBlE,IAAI,kBAAkB,yBAErB;IAED,aAAa,CAAC,IAAI,EAAE,IAAI;wBAIN,MAAM;;IAsBxB,IAAI,CAAE,GAAG,EAAC,QAAQ;wBAOA,MAAM;;IA+BxB;;;;;OAKG;IACH,YAAY,CAAE,IAAI,EAAC,IAAI,EAAE,wBAAwB,CAAC,EAAC,CAAE,OAAO,EAAC,IAAI,EAAE,SAAS,EAAC,IAAI,KAAI,IAAI;wBAmDvE,MAAM;;CA4ExB"}
1
+ {"version":3,"file":"FaceTracker.d.ts","sourceRoot":"","sources":["../../src/tracking/FaceTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,YAAY,EACZ,cAAc,EACjB,kBAAkB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAmB,IAAI,EAAE,QAAQ,EAAW,IAAI,EAAqF,MAAM,cAAc,CAAC;AACjK,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAC,MAAI,gBAAgB,GAAC,SAAS,CAAC;IAChD,aAAa,CAAC,EAAC,OAAO,CAAA;CACtB,CAAA;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,iBAAiB,wBAYzE;AAED;;;GAGG;AACH,QAAA,MAAM,SAAS;;;;;;;;;;;;;CAed,CAAA;AAUD,qBAAa,WAAY,SAAQ,OAAO,CAAC,OAAO,SAAS,CAAC;IAO7C,OAAO,CAAC,cAAc;IAAkB,OAAO,CAAC,GAAG;IAN/D,OAAO,CAAC,oBAAoB,CAAyB;IACrD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,cAAc,CAA4B;gBAE9B,cAAc,EAAE,cAAc,EAAU,GAAG,EAAC,iBAAiB;IAQxE,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY;IAsBlE,IAAI,kBAAkB,yBAErB;IAED,aAAa,CAAC,IAAI,EAAE,IAAI;wBAIN,MAAM;;IAsBxB,IAAI,CAAE,GAAG,EAAC,QAAQ;wBAOA,MAAM;;IA+BxB;;;;;;OAMG;IACH,YAAY,CAAE,IAAI,EAAC,IAAI,EAAE,wBAAwB,CAAC,EAAC,CAAE,OAAO,EAAC,IAAI,EAAE,SAAS,EAAC,IAAI,KAAI,IAAI;QAuCvF;;WAEG;;QAKH;;;;WAIG;wBACa,MAAM;;CA2GxB"}
@@ -10,8 +10,8 @@ export type HandsTrackerConfig = {
10
10
  drawLandmarks?: boolean;
11
11
  } & Partial<HandLandmarkerOptions>;
12
12
  export declare function loadHandTracker(vision: any, config: HandsTrackerConfig): Promise<{
13
- left: HandsTracker;
14
- right: HandsTracker;
13
+ readonly left: HandsTracker;
14
+ readonly right: HandsTracker;
15
15
  }>;
16
16
  declare const handMarks: {
17
17
  wrist: number;
@@ -42,7 +42,7 @@ type HandSide = "Left" | "Right";
42
42
  export type Mark2Bone = Partial<{
43
43
  [key in HandMarkName]: THREE.Object3D;
44
44
  }>;
45
- declare class HandsTracker extends Tracker<typeof handMarks> {
45
+ export declare class HandsTracker extends Tracker<typeof handMarks> {
46
46
  private readonly handLandmarker;
47
47
  private readonly side;
48
48
  private readonly isMyWrist;
@@ -1 +1 @@
1
- {"version":3,"file":"HandTracker.d.ts","sourceRoot":"","sources":["../../src/tracking/HandTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACT,cAAc,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAU,cAAc,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAAG;IAChC,SAAS,EAAE,MAAI,kBAAkB,CAAC;IAClC,UAAU,EAAE,MAAI,kBAAkB,CAAC;IACnC,SAAS,CAAC,EAAC,MAAM,CAAA;IACjB,aAAa,CAAC,EAAC,OAAO,CAAA;CACtB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAKnC,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC,kBAAkB;;;GA2B3E;AAED,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CA4Bd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,SAAS,CAAC;AAWlD,KAAK,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAChC,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;KAAG,GAAG,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ;CAAE,CAAC,CAAC;AAgB3E,cAAM,YAAa,SAAQ,OAAO,CAAC,OAAO,SAAS,CAAC;IAQvC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAAiB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAW,OAAO,CAAC,QAAQ,CAAC,SAAS;IAA4C,OAAO,CAAC,aAAa;IAPvL,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;gBAElB,cAAc,EAAC,cAAc,EAAmB,IAAI,EAAC,QAAQ,EAAmB,SAAS,EAAC,CAAE,SAAS,EAAC,kBAAkB,KAAI,OAAO,EAAU,aAAa,UAAO;IAWrL,OAAO,CAAE,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,YAAY;IAiCzD,IAAI,CAAG,KAAK,EAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE;IAKrG;;;;;OAKG;IACH,aAAa,CAAE,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,SAAS,EAAE,GAAG,EAAC,KAAK,CAAC,QAAQ;IA6CrE,OAAO,CAAC,UAAU;IA8DlB,IAAI,CAAE,GAAG,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAC,OAAO;wBAuCvB,MAAM;;CAKxB"}
1
+ {"version":3,"file":"HandTracker.d.ts","sourceRoot":"","sources":["../../src/tracking/HandTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACT,cAAc,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAU,cAAc,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAAG;IAChC,SAAS,EAAE,MAAI,kBAAkB,CAAC;IAClC,UAAU,EAAE,MAAI,kBAAkB,CAAC;IACnC,SAAS,CAAC,EAAC,MAAM,CAAA;IACjB,aAAa,CAAC,EAAC,OAAO,CAAA;CACtB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAKnC,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAC,kBAAkB;;;GA2B3E;AAED,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CA4Bd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,SAAS,CAAC;AAWlD,KAAK,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAChC,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;KAAG,GAAG,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ;CAAE,CAAC,CAAC;AAgB3E,qBAAa,YAAa,SAAQ,OAAO,CAAC,OAAO,SAAS,CAAC;IAQ9C,OAAO,CAAC,QAAQ,CAAC,cAAc;IAAiB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAW,OAAO,CAAC,QAAQ,CAAC,SAAS;IAA4C,OAAO,CAAC,aAAa;IAPvL,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;gBAElB,cAAc,EAAC,cAAc,EAAmB,IAAI,EAAC,QAAQ,EAAmB,SAAS,EAAC,CAAE,SAAS,EAAC,kBAAkB,KAAI,OAAO,EAAU,aAAa,UAAO;IAWrL,OAAO,CAAE,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,YAAY;IAiCzD,IAAI,CAAG,KAAK,EAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE;IAKrG;;;;;OAKG;IACH,aAAa,CAAE,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,SAAS,EAAE,GAAG,EAAC,KAAK,CAAC,QAAQ;IA6CrE,OAAO,CAAC,UAAU;IA8DlB,IAAI,CAAE,GAAG,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAC,OAAO;wBAuCvB,MAAM;;CAKxB"}
@@ -39,7 +39,7 @@ type PoseTrackerConfig = {
39
39
  /**
40
40
  * @see https://ai.google.dev/edge/mediapipe/solutions/vision/pose_landmarker
41
41
  */
42
- declare class PoseTracker extends Tracker<typeof poseMarks> {
42
+ export declare class PoseTracker extends Tracker<typeof poseMarks> {
43
43
  private readonly poseLandmarker;
44
44
  private readonly config?;
45
45
  private _leftWristNormalizedPosition;
@@ -1 +1 @@
1
- {"version":3,"file":"PoseTracker.d.ts","sourceRoot":"","sources":["../../src/tracking/PoseTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAC,OAAO,CAAC,iBAAiB,CAAC,wBAapF;AAED;;;;GAIG;AACH,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAE;AAcL,KAAK,iBAAiB,GAAG;IACxB,UAAU,EAAC,OAAO,CAAA;IAClB,SAAS,EAAC,MAAM,CAAA;IAChB,aAAa,CAAC,EAAC,OAAO,CAAA;CACtB,CAAA;AAED;;GAEG;AACH,cAAM,WAAY,SAAQ,OAAO,CAAC,OAAO,SAAS,CAAC;IActC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAAiB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAbpF,OAAO,CAAC,4BAA4B,CAAqB;IACzD,OAAO,CAAC,6BAA6B,CAAqB;IAE1D;;OAEG;IACH,IAAI,2BAA2B,uBAAgD;IAE/E;;OAEG;IACH,IAAI,4BAA4B,uBAAiD;gBAEpD,cAAc,EAAC,cAAc,EAAmB,MAAM,CAAC,EAAC,OAAO,CAAC,iBAAiB,CAAC,YAAA;IAStG,OAAO,CAAE,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,YAAY;IA8BlE,IAAI,CAAE,GAAG,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAC,OAAO;wBAuDxB,MAAM;;CA0BvB"}
1
+ {"version":3,"file":"PoseTracker.d.ts","sourceRoot":"","sources":["../../src/tracking/PoseTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAC,OAAO,CAAC,iBAAiB,CAAC,wBAapF;AAED;;;;GAIG;AACH,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAE;AAcL,KAAK,iBAAiB,GAAG;IACxB,UAAU,EAAC,OAAO,CAAA;IAClB,SAAS,EAAC,MAAM,CAAA;IAChB,aAAa,CAAC,EAAC,OAAO,CAAA;CACtB,CAAA;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO,CAAC,OAAO,SAAS,CAAC;IAc7C,OAAO,CAAC,QAAQ,CAAC,cAAc;IAAiB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAbpF,OAAO,CAAC,4BAA4B,CAAqB;IACzD,OAAO,CAAC,6BAA6B,CAAqB;IAE1D;;OAEG;IACH,IAAI,2BAA2B,uBAAgD;IAE/E;;OAEG;IACH,IAAI,4BAA4B,uBAAiD;gBAEpD,cAAc,EAAC,cAAc,EAAmB,MAAM,CAAC,EAAC,OAAO,CAAC,iBAAiB,CAAC,YAAA;IAStG,OAAO,CAAE,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,YAAY;IA8BlE,IAAI,CAAE,GAAG,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAC,OAAO;wBAuDxB,MAAM;;CA0BvB"}
@@ -0,0 +1,118 @@
1
+ import { HandLandmarkerOptions } from '@mediapipe/tasks-vision';
2
+ import { PoseTracker } from './PoseTracker';
3
+ import { HandsTracker } from './HandTracker';
4
+ import { FaceTracker } from './FaceTracker';
5
+ import { BoneMap } from './BoneMapping';
6
+ import { createRigRecorder } from './recoding/recorder';
7
+ import * as THREE from "three/webgpu";
8
+ export type TrackerConfig = {
9
+ /**
10
+ * Use an image file. Useful to test a particular pose.
11
+ */
12
+ debugFrame?: string;
13
+ /**
14
+ * Scale of the video display
15
+ */
16
+ displayScale: number;
17
+ /**
18
+ * If the body pose should ignore the legs
19
+ */
20
+ ignoreLegs: boolean;
21
+ /**
22
+ * Use a video file instead of the webcam
23
+ */
24
+ debugVideo?: string;
25
+ /**
26
+ * Don't track the face
27
+ */
28
+ ignoreFace: boolean;
29
+ /**
30
+ * Only track the face
31
+ */
32
+ onlyFace: boolean;
33
+ /**
34
+ * @see https://ai.google.dev/edge/mediapipe/solutions/vision/hand_landmarker/web_js#configuration_options
35
+ */
36
+ handsTrackerOptions: HandLandmarkerOptions | undefined;
37
+ modelPaths?: {
38
+ vision?: string;
39
+ pose?: string;
40
+ hand?: string;
41
+ face?: string;
42
+ };
43
+ /**
44
+ * Draw the wireframe landmarks on top of the source image/video? ( default to true )
45
+ */
46
+ drawLandmarksOverlay?: boolean;
47
+ };
48
+ export interface BindingHandler {
49
+ /**
50
+ * Updates the rig with the latest landmarks.
51
+ * @param delta The time elapsed since the last frame in seconds.
52
+ */
53
+ update: (delta: number) => void;
54
+ }
55
+ export interface RecorderHandler {
56
+ /**
57
+ * Starts recording the rig's movement and active shape keys ( from media pipe ).
58
+ */
59
+ startRecording: VoidFunction;
60
+ /**
61
+ * Stops recording the rig's movement.
62
+ * @returns A function that can be called to SAVE the recording to a file.
63
+ */
64
+ stopRecording: ReturnType<typeof createRigRecorder>['stop'];
65
+ /**
66
+ * Checks if the rig is currently recording.
67
+ * @returns True if the rig is recording, false otherwise.
68
+ */
69
+ isRecording: () => boolean;
70
+ }
71
+ export interface RecordableBindingHandler extends BindingHandler, RecorderHandler {
72
+ }
73
+ export declare function setupTracker(config?: Partial<TrackerConfig>): Promise<TrackerHandler>;
74
+ export type TrackerHandler = {
75
+ poseTracker: PoseTracker | undefined;
76
+ handsTracker: {
77
+ left: HandsTracker;
78
+ right: HandsTracker;
79
+ } | undefined;
80
+ faceTracker: FaceTracker | undefined;
81
+ /**
82
+ * Video element showing the webcam or video file
83
+ */
84
+ video: HTMLVideoElement | undefined;
85
+ /**
86
+ * Canvas where the debug landmarks are drawn
87
+ */
88
+ canvas: HTMLCanvasElement | undefined;
89
+ /**
90
+ * A div that contains the video and canvas used to display the landmarks stacked on top of each other.
91
+ */
92
+ domElement: HTMLDivElement | undefined;
93
+ /**
94
+ * Start the webcam feed. This must be initiated by a user triggered event ( a click on a button ) due to security reasons.
95
+ */
96
+ start: () => Promise<{
97
+ stop: VoidFunction;
98
+ }>;
99
+ /**
100
+ * Binds the bones of the rig to the landmarks provided by media pipe.
101
+ * @param rig The rig that contains all the bones and skinned meshes of your character.
102
+ * @param magging The bone mapping to use for the rig.
103
+ */
104
+ bind: (rig: THREE.Object3D, magging?: BoneMap) => RecordableBindingHandler;
105
+ /**
106
+ * Sets the source of the video used for the face tracking.
107
+ * @param source
108
+ */
109
+ setVideoFromSource: (source: string | File) => void;
110
+ /**
111
+ * Starts the webcam feed.
112
+ * @returns A function to stop the webcam feed.
113
+ */
114
+ setVideoFromWebcam: () => Promise<{
115
+ stop: VoidFunction;
116
+ }>;
117
+ };
118
+ //# sourceMappingURL=TrackerManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackerManager.d.ts","sourceRoot":"","sources":["../../src/tracking/TrackerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,qBAAqB,EAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAkB,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,mBAAmB,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAE1D,UAAU,CAAC,EAAE;QACZ,MAAM,CAAC,EAAC,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACd,CAAA;IAED;;OAEG;IACH,oBAAoB,CAAC,EAAC,OAAO,CAAA;CAC7B,CAAC;AAEF,MAAM,WAAW,cAAc;IAE9B;;;OAGG;IACA,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAEnC;AAED,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,cAAc,EAAE,YAAY,CAAC;IAE7B;;;OAGG;IACH,aAAa,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAE5D;;;OAGG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAyB,SAAQ,cAAc,EAAE,eAAe;CAAG;AAKpF,wBAAsB,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAI,OAAO,CAAC,cAAc,CAAC,CAyU5F;AAED,MAAM,MAAM,cAAc,GAAG;IAE5B,WAAW,EAAC,WAAW,GAAC,SAAS,CAAC;IAClC,YAAY,EAAC;QACZ,IAAI,EAAC,YAAY,CAAC;QAClB,KAAK,EAAC,YAAY,CAAC;KACnB,GAAC,SAAS,CAAC;IACZ,WAAW,EAAC,WAAW,GAAC,SAAS,CAAC;IAElC;;OAEG;IACH,KAAK,EAAC,gBAAgB,GAAC,SAAS,CAAC;IAEjC;;OAEG;IACH,MAAM,EAAC,iBAAiB,GAAC,SAAS,CAAC;IAEnC;;OAEG;IACH,UAAU,EAAC,cAAc,GAAC,SAAS,CAAC;IAEpC;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAC,YAAY,CAAA;KAAC,CAAC,CAAC;IAE3C;;;;OAIM;IACN,IAAI,EAAE,CAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAC,OAAO,KAAM,wBAAwB,CAAC;IAE5E;;;OAGG;IACH,kBAAkB,EAAE,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAM,IAAI,CAAC;IAEtD;;;OAGG;IACH,kBAAkB,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAC,YAAY,CAAA;KAAC,CAAC,CAAC;CACxD,CAAC"}
@@ -1,13 +1,6 @@
1
1
  import { BoneMap } from '../BoneMapping';
2
2
  import * as THREE from "three";
3
- /**
4
- * Records the local rotation of the bones in the rig. The name used will be the normalized bone name.
5
- * @param rigRoot
6
- * @param magging
7
- * @param fps
8
- * @returns
9
- */
10
- export declare function createRigRecorder(rigRoot: THREE.Object3D, magging: BoneMap, fps?: number): {
3
+ type Recorder = {
11
4
  start: () => void;
12
5
  captureFrame: () => void;
13
6
  stop: (name?: string) => {
@@ -16,4 +9,13 @@ export declare function createRigRecorder(rigRoot: THREE.Object3D, magging: Bone
16
9
  };
17
10
  isRecording: () => boolean;
18
11
  };
12
+ /**
13
+ * Records the local rotation of the bones in the rig. The name used will be the normalized bone name.
14
+ * @param rigRoot
15
+ * @param magging
16
+ * @param fps
17
+ * @returns
18
+ */
19
+ export declare function createRigRecorder(rigRoot: THREE.Object3D, magging: BoneMap, fps?: number): Recorder;
20
+ export {};
19
21
  //# sourceMappingURL=recorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../src/tracking/recoding/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAkB,MAAM,gBAAgB,CAAC;AAUzD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,KAAK,CAAC,QAAQ,EACvB,OAAO,EAAE,OAAO,EAChB,GAAG,SAAK;;;;;;;;EA+JX"}
1
+ {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../src/tracking/recoding/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAkB,MAAM,gBAAgB,CAAC;AAUzD,KAAK,QAAQ,GAAG;IACf,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK;QACxB,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;KACvB,CAAC;IACF,WAAW,EAAE,MAAM,OAAO,CAAC;CAC3B,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,KAAK,CAAC,QAAQ,EACvB,OAAO,EAAE,OAAO,EAChB,GAAG,SAAK,GACT,QAAQ,CA8JV"}
@@ -0,0 +1,9 @@
1
+ import { Mesh } from 'three';
2
+ export declare const FACE_LANDMARKS_COUNT = 478;
3
+ /**
4
+ *
5
+ * @param mesh The mesh to add the landmark index attribute to.
6
+ * @returns
7
+ */
8
+ export declare const createFaceLandmarksIndexAttribute: (mesh: Mesh) => void;
9
+ //# sourceMappingURL=face-tracker-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"face-tracker-utils.d.ts","sourceRoot":"","sources":["../../../src/tracking/util/face-tracker-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,OAAO,CAAC;AAE9C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAGxC;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,SAAU,IAAI,SA6B3D,CAAA"}
package/package.json CHANGED
@@ -1,20 +1,24 @@
1
1
  {
2
2
  "name": "three-mediapipe-rig",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "description": "Easy setup of a skeletal rig that responds to the motion tracker provided by google's mediapipe webwam feed.",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/bandinopla/three-mediapipe-rig.git"
9
- },
10
- "main": "./dist/three-mediapipe-rig.js",
11
- "module": "./dist/three-mediapipe-rig.js",
12
- "types": "./dist/module.d.ts",
9
+ },
10
+ "module": "./dist/rigger.js",
11
+ "types": "./dist/rigger.d.ts",
13
12
  "exports": {
14
13
  ".": {
15
- "import": "./dist/three-mediapipe-rig.js",
16
- "types": "./dist/module.d.ts"
17
- }
14
+ "import": "./dist/rigger.js",
15
+ "types": "./dist/rigger.d.ts",
16
+ "default": "./dist/rigger.js"
17
+ },
18
+ "./meshcap": {
19
+ "import": "./dist/meshcap.js",
20
+ "types": "./dist/meshcap.d.ts"
21
+ }
18
22
  },
19
23
  "files": [
20
24
  "dist"
@@ -27,16 +31,17 @@
27
31
  },
28
32
  "devDependencies": {
29
33
  "@types/node": "^25.3.3",
34
+ "@types/three": "^0.183.1",
30
35
  "path": "^0.12.7",
31
36
  "typescript": "~5.7.2",
32
37
  "vite": "^6.1.0",
33
- "vite-plugin-dts": "^4.5.4",
34
- "@types/three": "^0.183.1"
38
+ "vite-plugin-dts": "^4.5.4"
35
39
  },
36
40
  "peerDependencies": {
41
+ "@mediapipe/tasks-vision": "^0.10.32",
37
42
  "three": "^0.183.1",
38
- "@mediapipe/tasks-vision": "^0.10.32"
39
- },
43
+ "fflate": "^0.8.2"
44
+ },
40
45
  "license": "MIT",
41
46
  "packageManager": "pnpm@9.0.0"
42
47
  }