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.
- package/README.md +3 -1
- package/dist/face-tracker-utils-xt9__vBF.js +16 -0
- package/dist/meshcap/atlas-builder.d.ts +10 -0
- package/dist/meshcap/atlas-builder.d.ts.map +1 -0
- package/dist/meshcap/constants.d.ts +3 -0
- package/dist/meshcap/constants.d.ts.map +1 -0
- package/dist/meshcap/material.d.ts +53 -0
- package/dist/meshcap/material.d.ts.map +1 -0
- package/dist/meshcap/meshcap.d.ts +5 -0
- package/dist/meshcap/meshcap.d.ts.map +1 -0
- package/dist/meshcap/parse-mcap-file.d.ts +8 -0
- package/dist/meshcap/parse-mcap-file.d.ts.map +1 -0
- package/dist/meshcap/types.d.ts +53 -0
- package/dist/meshcap/types.d.ts.map +1 -0
- package/dist/meshcap/write-mcap-file.d.ts +3 -0
- package/dist/meshcap/write-mcap-file.d.ts.map +1 -0
- package/dist/meshcap.d.ts +2 -0
- package/dist/meshcap.js +316 -0
- package/dist/module.d.ts +1 -0
- package/dist/module.d.ts.map +1 -1
- package/dist/rigger.d.ts +2 -0
- package/dist/rigger.js +853 -0
- package/dist/tracking/BoneMapping.d.ts.map +1 -1
- package/dist/tracking/FaceTracker.d.ts +12 -2
- package/dist/tracking/FaceTracker.d.ts.map +1 -1
- package/dist/tracking/HandTracker.d.ts +3 -3
- package/dist/tracking/HandTracker.d.ts.map +1 -1
- package/dist/tracking/PoseTracker.d.ts +1 -1
- package/dist/tracking/PoseTracker.d.ts.map +1 -1
- package/dist/tracking/TrackerManager.d.ts +118 -0
- package/dist/tracking/TrackerManager.d.ts.map +1 -0
- package/dist/tracking/recoding/recorder.d.ts +10 -8
- package/dist/tracking/recoding/recorder.d.ts.map +1 -1
- package/dist/tracking/util/face-tracker-utils.d.ts +9 -0
- package/dist/tracking/util/face-tracker-utils.d.ts.map +1 -0
- package/package.json +17 -12
- package/dist/three-mediapipe-rig.js +0 -839
- 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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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.
|
|
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
|
-
"
|
|
11
|
-
"
|
|
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/
|
|
16
|
-
"types": "./dist/
|
|
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
|
-
"
|
|
39
|
-
},
|
|
43
|
+
"fflate": "^0.8.2"
|
|
44
|
+
},
|
|
40
45
|
"license": "MIT",
|
|
41
46
|
"packageManager": "pnpm@9.0.0"
|
|
42
47
|
}
|