@pose-tracker/pose-estimation-web 0.2.0 → 0.3.0

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/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as _tensorflow_tfjs from '@tensorflow/tfjs';
2
2
 
3
3
  /** Bumped with package.json version (keep in sync). */
4
- declare const SDK_VERSION = "0.2.0";
4
+ declare const SDK_VERSION = "0.3.0";
5
5
  declare const SDK_NAME: "posetracker-web";
6
6
 
7
7
  /**
@@ -132,6 +132,8 @@ interface EngineBundleDescriptor {
132
132
  minSdkVersion: string;
133
133
  /** True when the version sent in `localVersions.engine` is already current. */
134
134
  upToDate?: boolean;
135
+ /** Which interpreter this descriptor is. Absent on older backends = v3. */
136
+ channel?: 'v3' | 'v4';
135
137
  }
136
138
  interface PoseRuntimePartDescriptor {
137
139
  /** Download URL of this part (`GET /api/sdk/pose-runtime?part=...&v=...`). */
@@ -172,6 +174,11 @@ interface ConfigureRequest {
172
174
  poseRuntime?: string | null;
173
175
  engine?: string | null;
174
176
  };
177
+ /**
178
+ * Which remote engine to download. Default / omitted = v3 (production).
179
+ * `v4` is opt-in (heuristic catalog: squat, shoulder_roll, …).
180
+ */
181
+ engineChannel?: 'v3' | 'v4';
175
182
  }
176
183
  interface PlanInfo {
177
184
  plan: string;
@@ -202,6 +209,13 @@ interface SdkManifest {
202
209
  expiresAt: number;
203
210
  }
204
211
 
212
+ /** Opt-in remote engine channel. Default is production V3. */
213
+ type EngineChannel = 'v3' | 'v4';
214
+ /** Movements that exist only in the V4 catalog (not in V3 FSM / Strapi). */
215
+ declare const V4_ONLY_EXERCISE_IDS: readonly ["shoulder_roll", "shoulder_deep_breath", "chair_forward_fold"];
216
+ declare function normalizeEngineChannel(raw?: string | null): EngineChannel;
217
+ declare function requiresEngineV4(exerciseId: string): boolean;
218
+
205
219
  /**
206
220
  * Handshake client: `configure(apiToken)` → Strapi `SdkManifest`.
207
221
  * Same endpoint as RN light; `targetPlatform: 'web'`, `sdkName: posetracker-web`.
@@ -213,6 +227,11 @@ interface ConfigureOptions {
213
227
  poseModelProfile?: PoseModelProfile;
214
228
  locale?: string;
215
229
  localVersions?: ConfigureRequest['localVersions'];
230
+ /**
231
+ * Opt-in V4 heuristic engine. Default `'v3'` (production FSM).
232
+ * Set `'v4'` at init — the handshake downloads `engine-v4.bundle.js`.
233
+ */
234
+ engine?: EngineChannel;
216
235
  }
217
236
  declare class ConfigureError extends Error {
218
237
  readonly code: 'invalid_token' | 'quota_exceeded' | 'network' | 'internal';
@@ -716,6 +735,13 @@ interface PoseTrackerEngine {
716
735
  createSession(options: EngineSessionOptions, emit: EventSink): EngineSession;
717
736
  /** Engine >= 1.2.0: custom exercises shipped in the bundle (jump analysis…). */
718
737
  listCustomExercises?(): CustomExerciseDescriptor[];
738
+ /** Engine V4 catalog (opt-in channel). Absent on V3 bundles. */
739
+ listExercises?(): Array<{
740
+ id: string;
741
+ displayName: string;
742
+ type: string;
743
+ description?: string;
744
+ }>;
719
745
  /** Engine >= 1.2.0: start a custom exercise session (placement + jump_* events). */
720
746
  createCustomSession?(options: CustomSessionOptions, emit: EventSink): EngineSession;
721
747
  }
@@ -1008,6 +1034,12 @@ interface PoseTrackerClientOptions extends ConfigureOptions {
1008
1034
  /** Convenience with `source: 'video' | 'image'` (string / File / Blob). */
1009
1035
  sourceUrl?: string;
1010
1036
  sourceFile?: File | Blob;
1037
+ /**
1038
+ * Still-image inference. Default `single`: one full-frame SinglePose pass
1039
+ * (no EMA / no ROI). `tracked`: treat analyze() as video frames — EMA +
1040
+ * previous-pose crop so each shot can refine the last skeleton.
1041
+ */
1042
+ stillMode?: 'single' | 'tracked';
1011
1043
  }
1012
1044
  /** @deprecated Prefer PoseTrackerClientOptions — kept for vanilla DX. */
1013
1045
  type PoseTrackerOptions = PoseTrackerClientOptions;
@@ -1108,8 +1140,11 @@ declare class PoseTrackerClient {
1108
1140
  dispose(): Promise<void>;
1109
1141
  configure(apiToken?: string): Promise<boolean>;
1110
1142
  getAvailableExercises(): ExerciseConfig[];
1143
+ getEngineChannel(): EngineChannel;
1144
+ private v4ExerciseConfig;
1111
1145
  getAvailableCustomExercises(): CustomExerciseDescriptor[];
1112
1146
  startExercise(exerciseId: string, options?: StartExerciseOptions): void;
1147
+ private beginEngineSession;
1113
1148
  private startCustomExercise;
1114
1149
  stopExercise(): void;
1115
1150
  getCurrentExerciseId(): string | null;
@@ -1161,6 +1196,9 @@ interface Letterbox {
1161
1196
  drawH: number;
1162
1197
  vw: number;
1163
1198
  vh: number;
1199
+ /** Window top-left in original media pixels (still-image video simulation). */
1200
+ originX?: number;
1201
+ originY?: number;
1164
1202
  }
1165
1203
  interface DetectorFrameResult {
1166
1204
  /** Raw model output used for skeleton mapping (MoveNet: Float32Array length 51). */
@@ -1191,7 +1229,11 @@ interface PoseDetectorAdapter {
1191
1229
  facingMode: 'user' | 'environment';
1192
1230
  displayWidth: number;
1193
1231
  displayHeight: number;
1232
+ /** EMA across frames. Default true. Stills may pass true to simulate a short clip. */
1233
+ temporalSmooth?: boolean;
1194
1234
  }): Promise<DetectorFrameResult | null>;
1235
+ /** Optional: clear temporal filters when the media source changes. */
1236
+ resetTemporal?(): void;
1195
1237
  dispose(): void;
1196
1238
  }
1197
1239
  interface CreateAdapterContext {
@@ -1211,6 +1253,9 @@ declare class MoveNetGraphAdapter implements PoseDetectorAdapter {
1211
1253
  private offscreen;
1212
1254
  private offCtx;
1213
1255
  private smoothed;
1256
+ private lastVideoKps;
1257
+ private stillPass;
1258
+ private inferLb;
1214
1259
  private letterbox;
1215
1260
  constructor(ctx: CreateAdapterContext);
1216
1261
  getBackend(): string | null;
@@ -1222,7 +1267,10 @@ declare class MoveNetGraphAdapter implements PoseDetectorAdapter {
1222
1267
  facingMode: 'user' | 'environment';
1223
1268
  displayWidth: number;
1224
1269
  displayHeight: number;
1270
+ temporalSmooth?: boolean;
1225
1271
  }): Promise<DetectorFrameResult | null>;
1272
+ /** Clear EMA state (call when the still / clip changes). */
1273
+ resetTemporal(): void;
1226
1274
  dispose(): void;
1227
1275
  }
1228
1276
  /** Map video keypoints → object-fit:cover display pixels for drawing. */
@@ -1251,7 +1299,10 @@ declare class BlazePoseAdapter implements PoseDetectorAdapter {
1251
1299
  facingMode: 'user' | 'environment';
1252
1300
  displayWidth: number;
1253
1301
  displayHeight: number;
1302
+ temporalSmooth?: boolean;
1254
1303
  }): Promise<DetectorFrameResult | null>;
1304
+ /** Clear cached ROI / landmark filters (call when the still changes). */
1305
+ resetTemporal(): void;
1255
1306
  dispose(): void;
1256
1307
  }
1257
1308
 
@@ -1411,4 +1462,4 @@ declare function findExerciseByIdOrAlias<T extends {
1411
1462
  id: string;
1412
1463
  }>(exerciseId: string, exercises: readonly T[]): T | undefined;
1413
1464
 
1414
- export { type AccelerationDiagnostics, type AccelerationState, type AngleValue, type AnglesEvent, BRAND_COLORS, BlazePoseAdapter, type BlazePoseModelType, COCO_KEYPOINT_NAMES, COMBINED_REFERENCE_EXERCISE_MESSAGE, type CameraFacingMode, type CameraOptions, type CameraPoseSource, type ClassicMessageListener, type ClassicNativeMessage, type CocoKeypointName, type ColdStartMode, ConfigureError, type ConfigureOptions, type ConfigureRequest, type CounterEvent, type CounterFormScore, type CustomExerciseDescriptor, type CustomSessionOptions, DEFAULT_BASE_URL, DEFAULT_FEATURES, DEFAULT_LOADING_TEXT, DEFAULT_MOVENET_LIGHTNING_URL, DEFAULT_SKELETON, DEFAULT_SKELETON_DEFINITION, type DetectorFrameResult, type DiagnosticListener, EXERCISE_ALIASES, type EngineBundleDescriptor, type EngineLoadResult, EngineLoader, type EngineLoaderOptions, type EngineSession, type EngineSessionFeatures, type EngineSessionOptions, type ErrorEvent, type EventSink, type ExerciseConfig, type ExerciseSummaryEvent, FREE_PLAN_FEATURES_MESSAGE, type FetchSkeletonOptions, type FileStore, type FormGrade, type FormScoreEvent, INVALID_TOKEN_MESSAGE, type ImagePoseSource, type InferenceRuntime, type InitialPosture, type InitializationEvent, type InitializationStep, type JumpCalibrationEvent, type JumpDiscardedEvent, type JumpHeightEvent, type JumpResultEvent, type JumpStartedEvent, type JumpSummaryEntry, type JumpSummaryEvent, type KeyValueStore, type Keypoint, type KeypointName, type KeypointsEvent, type MinGrade, type ModelDescriptor, type ModelFormat, type ModelsByProfile, MoveNetGraphAdapter, type MovementDefinition, type MovementRecommendation, type MovementStep, type MovementStepParameter, ONLINE_POSE_DETECTION_VERSION, ONLINE_TFJS_VERSION, POSETRACKER_LOGO_URL, type PerformanceWarningEvent, type PlanInfo, type Pose, PoseCamera, PoseCamera_mount, type PoseDetectionModule, type PoseDetectorAdapter, type PoseEstimateInput, type PoseModelAlias, type PoseModelKind, type PoseModelProfile, type PoseRuntimeDescriptor, type PoseRuntimePartDescriptor, type PoseSource, type PoseSourceProps, type PoseSourceType, type PoseTracker, type PoseTrackerCallbacks, PoseTrackerClient, type PoseTrackerClientOptions, type PoseTrackerEngine, type PoseTrackerEvent, type PoseTrackerEventListener, type PoseTrackerEventType, type PoseTrackerFeatures, type PoseTrackerMode, type PoseTrackerOptions, type PoseTrackerStatus, type PostureEvent, type PreloadOptions, type ProgressionEvent, type QualityChangedEvent, type RecommendationsEvent, type ReferenceMovementDescriptor, type RepSummary, type ResolvePoseModelOptions, type ResolvedFeatures, type ResolvedPoseModel, type RuntimeDownloadProgressEvent, SDK_NAME, SDK_VERSION, type SdkManifest, type SkeletonAnglesStyle, type SkeletonCirclesStyle, type SkeletonDefinition, SkeletonFetchError, type SkeletonLinesStyle, type StartExerciseOptions, type StatsEvent, type TfModule, type TfjsCdnUrls, TrackError, type TrackRequest, type TrackResponse, UsageTracker, type UsageTrackerOptions, type VideoPoseSource, type VisibleHipsInfo, type WarningEvent, configure, createLocalFileStore, createLocalKeyValueStore, createMemoryFileStore, createPoseAdapter, createPoseTracker, createWebFileStore, defaultPoseDetectionCdnUrl, defaultTfjsCdnUrls, drawSkeleton, featureNotSupportedMessage, fetchSkeletonDefinition, findExerciseByIdOrAlias, freeBlockedFeatures, initWebGlBackend, isPaidPlan, mapVideoKeypointsToDisplay, mountDomShell, normalizePoseSource, openCameraStream, resolveExerciseName, resolveFeatures, resolvePoseDetection, resolvePoseModel, resolveTf, shouldShowWatermark, stopMediaStream, toClassicNativeMessage };
1465
+ export { type AccelerationDiagnostics, type AccelerationState, type AngleValue, type AnglesEvent, BRAND_COLORS, BlazePoseAdapter, type BlazePoseModelType, COCO_KEYPOINT_NAMES, COMBINED_REFERENCE_EXERCISE_MESSAGE, type CameraFacingMode, type CameraOptions, type CameraPoseSource, type ClassicMessageListener, type ClassicNativeMessage, type CocoKeypointName, type ColdStartMode, ConfigureError, type ConfigureOptions, type ConfigureRequest, type CounterEvent, type CounterFormScore, type CustomExerciseDescriptor, type CustomSessionOptions, DEFAULT_BASE_URL, DEFAULT_FEATURES, DEFAULT_LOADING_TEXT, DEFAULT_MOVENET_LIGHTNING_URL, DEFAULT_SKELETON, DEFAULT_SKELETON_DEFINITION, type DetectorFrameResult, type DiagnosticListener, EXERCISE_ALIASES, type EngineBundleDescriptor, type EngineChannel, type EngineLoadResult, EngineLoader, type EngineLoaderOptions, type EngineSession, type EngineSessionFeatures, type EngineSessionOptions, type ErrorEvent, type EventSink, type ExerciseConfig, type ExerciseSummaryEvent, FREE_PLAN_FEATURES_MESSAGE, type FetchSkeletonOptions, type FileStore, type FormGrade, type FormScoreEvent, INVALID_TOKEN_MESSAGE, type ImagePoseSource, type InferenceRuntime, type InitialPosture, type InitializationEvent, type InitializationStep, type JumpCalibrationEvent, type JumpDiscardedEvent, type JumpHeightEvent, type JumpResultEvent, type JumpStartedEvent, type JumpSummaryEntry, type JumpSummaryEvent, type KeyValueStore, type Keypoint, type KeypointName, type KeypointsEvent, type MinGrade, type ModelDescriptor, type ModelFormat, type ModelsByProfile, MoveNetGraphAdapter, type MovementDefinition, type MovementRecommendation, type MovementStep, type MovementStepParameter, ONLINE_POSE_DETECTION_VERSION, ONLINE_TFJS_VERSION, POSETRACKER_LOGO_URL, type PerformanceWarningEvent, type PlanInfo, type Pose, PoseCamera, PoseCamera_mount, type PoseDetectionModule, type PoseDetectorAdapter, type PoseEstimateInput, type PoseModelAlias, type PoseModelKind, type PoseModelProfile, type PoseRuntimeDescriptor, type PoseRuntimePartDescriptor, type PoseSource, type PoseSourceProps, type PoseSourceType, type PoseTracker, type PoseTrackerCallbacks, PoseTrackerClient, type PoseTrackerClientOptions, type PoseTrackerEngine, type PoseTrackerEvent, type PoseTrackerEventListener, type PoseTrackerEventType, type PoseTrackerFeatures, type PoseTrackerMode, type PoseTrackerOptions, type PoseTrackerStatus, type PostureEvent, type PreloadOptions, type ProgressionEvent, type QualityChangedEvent, type RecommendationsEvent, type ReferenceMovementDescriptor, type RepSummary, type ResolvePoseModelOptions, type ResolvedFeatures, type ResolvedPoseModel, type RuntimeDownloadProgressEvent, SDK_NAME, SDK_VERSION, type SdkManifest, type SkeletonAnglesStyle, type SkeletonCirclesStyle, type SkeletonDefinition, SkeletonFetchError, type SkeletonLinesStyle, type StartExerciseOptions, type StatsEvent, type TfModule, type TfjsCdnUrls, TrackError, type TrackRequest, type TrackResponse, UsageTracker, type UsageTrackerOptions, V4_ONLY_EXERCISE_IDS, type VideoPoseSource, type VisibleHipsInfo, type WarningEvent, configure, createLocalFileStore, createLocalKeyValueStore, createMemoryFileStore, createPoseAdapter, createPoseTracker, createWebFileStore, defaultPoseDetectionCdnUrl, defaultTfjsCdnUrls, drawSkeleton, featureNotSupportedMessage, fetchSkeletonDefinition, findExerciseByIdOrAlias, freeBlockedFeatures, initWebGlBackend, isPaidPlan, mapVideoKeypointsToDisplay, mountDomShell, normalizeEngineChannel, normalizePoseSource, openCameraStream, requiresEngineV4, resolveExerciseName, resolveFeatures, resolvePoseDetection, resolvePoseModel, resolveTf, shouldShowWatermark, stopMediaStream, toClassicNativeMessage };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as _tensorflow_tfjs from '@tensorflow/tfjs';
2
2
 
3
3
  /** Bumped with package.json version (keep in sync). */
4
- declare const SDK_VERSION = "0.2.0";
4
+ declare const SDK_VERSION = "0.3.0";
5
5
  declare const SDK_NAME: "posetracker-web";
6
6
 
7
7
  /**
@@ -132,6 +132,8 @@ interface EngineBundleDescriptor {
132
132
  minSdkVersion: string;
133
133
  /** True when the version sent in `localVersions.engine` is already current. */
134
134
  upToDate?: boolean;
135
+ /** Which interpreter this descriptor is. Absent on older backends = v3. */
136
+ channel?: 'v3' | 'v4';
135
137
  }
136
138
  interface PoseRuntimePartDescriptor {
137
139
  /** Download URL of this part (`GET /api/sdk/pose-runtime?part=...&v=...`). */
@@ -172,6 +174,11 @@ interface ConfigureRequest {
172
174
  poseRuntime?: string | null;
173
175
  engine?: string | null;
174
176
  };
177
+ /**
178
+ * Which remote engine to download. Default / omitted = v3 (production).
179
+ * `v4` is opt-in (heuristic catalog: squat, shoulder_roll, …).
180
+ */
181
+ engineChannel?: 'v3' | 'v4';
175
182
  }
176
183
  interface PlanInfo {
177
184
  plan: string;
@@ -202,6 +209,13 @@ interface SdkManifest {
202
209
  expiresAt: number;
203
210
  }
204
211
 
212
+ /** Opt-in remote engine channel. Default is production V3. */
213
+ type EngineChannel = 'v3' | 'v4';
214
+ /** Movements that exist only in the V4 catalog (not in V3 FSM / Strapi). */
215
+ declare const V4_ONLY_EXERCISE_IDS: readonly ["shoulder_roll", "shoulder_deep_breath", "chair_forward_fold"];
216
+ declare function normalizeEngineChannel(raw?: string | null): EngineChannel;
217
+ declare function requiresEngineV4(exerciseId: string): boolean;
218
+
205
219
  /**
206
220
  * Handshake client: `configure(apiToken)` → Strapi `SdkManifest`.
207
221
  * Same endpoint as RN light; `targetPlatform: 'web'`, `sdkName: posetracker-web`.
@@ -213,6 +227,11 @@ interface ConfigureOptions {
213
227
  poseModelProfile?: PoseModelProfile;
214
228
  locale?: string;
215
229
  localVersions?: ConfigureRequest['localVersions'];
230
+ /**
231
+ * Opt-in V4 heuristic engine. Default `'v3'` (production FSM).
232
+ * Set `'v4'` at init — the handshake downloads `engine-v4.bundle.js`.
233
+ */
234
+ engine?: EngineChannel;
216
235
  }
217
236
  declare class ConfigureError extends Error {
218
237
  readonly code: 'invalid_token' | 'quota_exceeded' | 'network' | 'internal';
@@ -716,6 +735,13 @@ interface PoseTrackerEngine {
716
735
  createSession(options: EngineSessionOptions, emit: EventSink): EngineSession;
717
736
  /** Engine >= 1.2.0: custom exercises shipped in the bundle (jump analysis…). */
718
737
  listCustomExercises?(): CustomExerciseDescriptor[];
738
+ /** Engine V4 catalog (opt-in channel). Absent on V3 bundles. */
739
+ listExercises?(): Array<{
740
+ id: string;
741
+ displayName: string;
742
+ type: string;
743
+ description?: string;
744
+ }>;
719
745
  /** Engine >= 1.2.0: start a custom exercise session (placement + jump_* events). */
720
746
  createCustomSession?(options: CustomSessionOptions, emit: EventSink): EngineSession;
721
747
  }
@@ -1008,6 +1034,12 @@ interface PoseTrackerClientOptions extends ConfigureOptions {
1008
1034
  /** Convenience with `source: 'video' | 'image'` (string / File / Blob). */
1009
1035
  sourceUrl?: string;
1010
1036
  sourceFile?: File | Blob;
1037
+ /**
1038
+ * Still-image inference. Default `single`: one full-frame SinglePose pass
1039
+ * (no EMA / no ROI). `tracked`: treat analyze() as video frames — EMA +
1040
+ * previous-pose crop so each shot can refine the last skeleton.
1041
+ */
1042
+ stillMode?: 'single' | 'tracked';
1011
1043
  }
1012
1044
  /** @deprecated Prefer PoseTrackerClientOptions — kept for vanilla DX. */
1013
1045
  type PoseTrackerOptions = PoseTrackerClientOptions;
@@ -1108,8 +1140,11 @@ declare class PoseTrackerClient {
1108
1140
  dispose(): Promise<void>;
1109
1141
  configure(apiToken?: string): Promise<boolean>;
1110
1142
  getAvailableExercises(): ExerciseConfig[];
1143
+ getEngineChannel(): EngineChannel;
1144
+ private v4ExerciseConfig;
1111
1145
  getAvailableCustomExercises(): CustomExerciseDescriptor[];
1112
1146
  startExercise(exerciseId: string, options?: StartExerciseOptions): void;
1147
+ private beginEngineSession;
1113
1148
  private startCustomExercise;
1114
1149
  stopExercise(): void;
1115
1150
  getCurrentExerciseId(): string | null;
@@ -1161,6 +1196,9 @@ interface Letterbox {
1161
1196
  drawH: number;
1162
1197
  vw: number;
1163
1198
  vh: number;
1199
+ /** Window top-left in original media pixels (still-image video simulation). */
1200
+ originX?: number;
1201
+ originY?: number;
1164
1202
  }
1165
1203
  interface DetectorFrameResult {
1166
1204
  /** Raw model output used for skeleton mapping (MoveNet: Float32Array length 51). */
@@ -1191,7 +1229,11 @@ interface PoseDetectorAdapter {
1191
1229
  facingMode: 'user' | 'environment';
1192
1230
  displayWidth: number;
1193
1231
  displayHeight: number;
1232
+ /** EMA across frames. Default true. Stills may pass true to simulate a short clip. */
1233
+ temporalSmooth?: boolean;
1194
1234
  }): Promise<DetectorFrameResult | null>;
1235
+ /** Optional: clear temporal filters when the media source changes. */
1236
+ resetTemporal?(): void;
1195
1237
  dispose(): void;
1196
1238
  }
1197
1239
  interface CreateAdapterContext {
@@ -1211,6 +1253,9 @@ declare class MoveNetGraphAdapter implements PoseDetectorAdapter {
1211
1253
  private offscreen;
1212
1254
  private offCtx;
1213
1255
  private smoothed;
1256
+ private lastVideoKps;
1257
+ private stillPass;
1258
+ private inferLb;
1214
1259
  private letterbox;
1215
1260
  constructor(ctx: CreateAdapterContext);
1216
1261
  getBackend(): string | null;
@@ -1222,7 +1267,10 @@ declare class MoveNetGraphAdapter implements PoseDetectorAdapter {
1222
1267
  facingMode: 'user' | 'environment';
1223
1268
  displayWidth: number;
1224
1269
  displayHeight: number;
1270
+ temporalSmooth?: boolean;
1225
1271
  }): Promise<DetectorFrameResult | null>;
1272
+ /** Clear EMA state (call when the still / clip changes). */
1273
+ resetTemporal(): void;
1226
1274
  dispose(): void;
1227
1275
  }
1228
1276
  /** Map video keypoints → object-fit:cover display pixels for drawing. */
@@ -1251,7 +1299,10 @@ declare class BlazePoseAdapter implements PoseDetectorAdapter {
1251
1299
  facingMode: 'user' | 'environment';
1252
1300
  displayWidth: number;
1253
1301
  displayHeight: number;
1302
+ temporalSmooth?: boolean;
1254
1303
  }): Promise<DetectorFrameResult | null>;
1304
+ /** Clear cached ROI / landmark filters (call when the still changes). */
1305
+ resetTemporal(): void;
1255
1306
  dispose(): void;
1256
1307
  }
1257
1308
 
@@ -1411,4 +1462,4 @@ declare function findExerciseByIdOrAlias<T extends {
1411
1462
  id: string;
1412
1463
  }>(exerciseId: string, exercises: readonly T[]): T | undefined;
1413
1464
 
1414
- export { type AccelerationDiagnostics, type AccelerationState, type AngleValue, type AnglesEvent, BRAND_COLORS, BlazePoseAdapter, type BlazePoseModelType, COCO_KEYPOINT_NAMES, COMBINED_REFERENCE_EXERCISE_MESSAGE, type CameraFacingMode, type CameraOptions, type CameraPoseSource, type ClassicMessageListener, type ClassicNativeMessage, type CocoKeypointName, type ColdStartMode, ConfigureError, type ConfigureOptions, type ConfigureRequest, type CounterEvent, type CounterFormScore, type CustomExerciseDescriptor, type CustomSessionOptions, DEFAULT_BASE_URL, DEFAULT_FEATURES, DEFAULT_LOADING_TEXT, DEFAULT_MOVENET_LIGHTNING_URL, DEFAULT_SKELETON, DEFAULT_SKELETON_DEFINITION, type DetectorFrameResult, type DiagnosticListener, EXERCISE_ALIASES, type EngineBundleDescriptor, type EngineLoadResult, EngineLoader, type EngineLoaderOptions, type EngineSession, type EngineSessionFeatures, type EngineSessionOptions, type ErrorEvent, type EventSink, type ExerciseConfig, type ExerciseSummaryEvent, FREE_PLAN_FEATURES_MESSAGE, type FetchSkeletonOptions, type FileStore, type FormGrade, type FormScoreEvent, INVALID_TOKEN_MESSAGE, type ImagePoseSource, type InferenceRuntime, type InitialPosture, type InitializationEvent, type InitializationStep, type JumpCalibrationEvent, type JumpDiscardedEvent, type JumpHeightEvent, type JumpResultEvent, type JumpStartedEvent, type JumpSummaryEntry, type JumpSummaryEvent, type KeyValueStore, type Keypoint, type KeypointName, type KeypointsEvent, type MinGrade, type ModelDescriptor, type ModelFormat, type ModelsByProfile, MoveNetGraphAdapter, type MovementDefinition, type MovementRecommendation, type MovementStep, type MovementStepParameter, ONLINE_POSE_DETECTION_VERSION, ONLINE_TFJS_VERSION, POSETRACKER_LOGO_URL, type PerformanceWarningEvent, type PlanInfo, type Pose, PoseCamera, PoseCamera_mount, type PoseDetectionModule, type PoseDetectorAdapter, type PoseEstimateInput, type PoseModelAlias, type PoseModelKind, type PoseModelProfile, type PoseRuntimeDescriptor, type PoseRuntimePartDescriptor, type PoseSource, type PoseSourceProps, type PoseSourceType, type PoseTracker, type PoseTrackerCallbacks, PoseTrackerClient, type PoseTrackerClientOptions, type PoseTrackerEngine, type PoseTrackerEvent, type PoseTrackerEventListener, type PoseTrackerEventType, type PoseTrackerFeatures, type PoseTrackerMode, type PoseTrackerOptions, type PoseTrackerStatus, type PostureEvent, type PreloadOptions, type ProgressionEvent, type QualityChangedEvent, type RecommendationsEvent, type ReferenceMovementDescriptor, type RepSummary, type ResolvePoseModelOptions, type ResolvedFeatures, type ResolvedPoseModel, type RuntimeDownloadProgressEvent, SDK_NAME, SDK_VERSION, type SdkManifest, type SkeletonAnglesStyle, type SkeletonCirclesStyle, type SkeletonDefinition, SkeletonFetchError, type SkeletonLinesStyle, type StartExerciseOptions, type StatsEvent, type TfModule, type TfjsCdnUrls, TrackError, type TrackRequest, type TrackResponse, UsageTracker, type UsageTrackerOptions, type VideoPoseSource, type VisibleHipsInfo, type WarningEvent, configure, createLocalFileStore, createLocalKeyValueStore, createMemoryFileStore, createPoseAdapter, createPoseTracker, createWebFileStore, defaultPoseDetectionCdnUrl, defaultTfjsCdnUrls, drawSkeleton, featureNotSupportedMessage, fetchSkeletonDefinition, findExerciseByIdOrAlias, freeBlockedFeatures, initWebGlBackend, isPaidPlan, mapVideoKeypointsToDisplay, mountDomShell, normalizePoseSource, openCameraStream, resolveExerciseName, resolveFeatures, resolvePoseDetection, resolvePoseModel, resolveTf, shouldShowWatermark, stopMediaStream, toClassicNativeMessage };
1465
+ export { type AccelerationDiagnostics, type AccelerationState, type AngleValue, type AnglesEvent, BRAND_COLORS, BlazePoseAdapter, type BlazePoseModelType, COCO_KEYPOINT_NAMES, COMBINED_REFERENCE_EXERCISE_MESSAGE, type CameraFacingMode, type CameraOptions, type CameraPoseSource, type ClassicMessageListener, type ClassicNativeMessage, type CocoKeypointName, type ColdStartMode, ConfigureError, type ConfigureOptions, type ConfigureRequest, type CounterEvent, type CounterFormScore, type CustomExerciseDescriptor, type CustomSessionOptions, DEFAULT_BASE_URL, DEFAULT_FEATURES, DEFAULT_LOADING_TEXT, DEFAULT_MOVENET_LIGHTNING_URL, DEFAULT_SKELETON, DEFAULT_SKELETON_DEFINITION, type DetectorFrameResult, type DiagnosticListener, EXERCISE_ALIASES, type EngineBundleDescriptor, type EngineChannel, type EngineLoadResult, EngineLoader, type EngineLoaderOptions, type EngineSession, type EngineSessionFeatures, type EngineSessionOptions, type ErrorEvent, type EventSink, type ExerciseConfig, type ExerciseSummaryEvent, FREE_PLAN_FEATURES_MESSAGE, type FetchSkeletonOptions, type FileStore, type FormGrade, type FormScoreEvent, INVALID_TOKEN_MESSAGE, type ImagePoseSource, type InferenceRuntime, type InitialPosture, type InitializationEvent, type InitializationStep, type JumpCalibrationEvent, type JumpDiscardedEvent, type JumpHeightEvent, type JumpResultEvent, type JumpStartedEvent, type JumpSummaryEntry, type JumpSummaryEvent, type KeyValueStore, type Keypoint, type KeypointName, type KeypointsEvent, type MinGrade, type ModelDescriptor, type ModelFormat, type ModelsByProfile, MoveNetGraphAdapter, type MovementDefinition, type MovementRecommendation, type MovementStep, type MovementStepParameter, ONLINE_POSE_DETECTION_VERSION, ONLINE_TFJS_VERSION, POSETRACKER_LOGO_URL, type PerformanceWarningEvent, type PlanInfo, type Pose, PoseCamera, PoseCamera_mount, type PoseDetectionModule, type PoseDetectorAdapter, type PoseEstimateInput, type PoseModelAlias, type PoseModelKind, type PoseModelProfile, type PoseRuntimeDescriptor, type PoseRuntimePartDescriptor, type PoseSource, type PoseSourceProps, type PoseSourceType, type PoseTracker, type PoseTrackerCallbacks, PoseTrackerClient, type PoseTrackerClientOptions, type PoseTrackerEngine, type PoseTrackerEvent, type PoseTrackerEventListener, type PoseTrackerEventType, type PoseTrackerFeatures, type PoseTrackerMode, type PoseTrackerOptions, type PoseTrackerStatus, type PostureEvent, type PreloadOptions, type ProgressionEvent, type QualityChangedEvent, type RecommendationsEvent, type ReferenceMovementDescriptor, type RepSummary, type ResolvePoseModelOptions, type ResolvedFeatures, type ResolvedPoseModel, type RuntimeDownloadProgressEvent, SDK_NAME, SDK_VERSION, type SdkManifest, type SkeletonAnglesStyle, type SkeletonCirclesStyle, type SkeletonDefinition, SkeletonFetchError, type SkeletonLinesStyle, type StartExerciseOptions, type StatsEvent, type TfModule, type TfjsCdnUrls, TrackError, type TrackRequest, type TrackResponse, UsageTracker, type UsageTrackerOptions, V4_ONLY_EXERCISE_IDS, type VideoPoseSource, type VisibleHipsInfo, type WarningEvent, configure, createLocalFileStore, createLocalKeyValueStore, createMemoryFileStore, createPoseAdapter, createPoseTracker, createWebFileStore, defaultPoseDetectionCdnUrl, defaultTfjsCdnUrls, drawSkeleton, featureNotSupportedMessage, fetchSkeletonDefinition, findExerciseByIdOrAlias, freeBlockedFeatures, initWebGlBackend, isPaidPlan, mapVideoKeypointsToDisplay, mountDomShell, normalizeEngineChannel, normalizePoseSource, openCameraStream, requiresEngineV4, resolveExerciseName, resolveFeatures, resolvePoseDetection, resolvePoseModel, resolveTf, shouldShowWatermark, stopMediaStream, toClassicNativeMessage };