ActiCount Privacy Policy
Effective Date: September 3, 2026
Last Updated: September 14, 2026
If there is any inconsistency between the Chinese and English versions, the Chinese version will prevail, except where applicable law requires otherwise.
1. Introduction
Shanghai Infinite Imagination Information Technology Co., Ltd (the “Company,” “we,” “us,” or “our”) operates ActiCount (the “App”). We respect your privacy and process personal information in accordance with applicable data protection laws.
The App is a repetition-counting application that runs locally on your device. You first demonstrate one repetition of a movement in front of the camera, and the App learns a normalized pose trajectory for that movement on your device. When you then repeat the movement, the App matches it against the trajectory in order, counts the repetition, and announces the count using the operating system’s speech synthesis. The App has no developer-operated backend. All pose inference is performed on your device, and camera footage is never uploaded. iOS subscription purchases and verification use Apple StoreKit and may require a network connection.
This Policy explains how the App collects, uses, stores, shares, and protects information, and how you may exercise your rights. Please read it carefully before using the App, particularly the provisions shown in bold.
When you record a demonstration or count repetitions, the App requests camera access and reads the camera feed. The feed is processed by the RTMPose-s pose model weights shipped inside the application package, which run on your device through ONNX Runtime with an input size of 256×192 and produce the 17 human body keypoints defined by COCO. Those keypoints are used to learn and match a normalized pose trajectory. Camera footage is processed in real time on your device only. Recording a demonstration does not create or save a video file, and the App does not write footage to storage or upload footage, keypoints, or anything derived from them to us or to any third party.
2.2 Temporary Thumbnails Within a Session
To help you confirm where a demonstration starts and ends, the App separately generates JPEG thumbnails at an interval of one image every 125 milliseconds while recording. These thumbnails are kept only within the current session, up to the most recent 12 seconds and a maximum of 128 images, and are used for trimming confirmation and for handling the closing portion of a demonstration. Once you confirm the movement, leave the page, or end the session, the App releases these temporary images. Thumbnails are never written to storage and are never uploaded.
2.3 Saved Movement Models
When you save a learned movement, the App writes one JSON file per movement into the documents directory that the operating system allocates to the App. The file contains the movement name and identifier, the pose-model source, creation and update timestamps, and the normalized pose trajectory and related joint information used to match the movement. The file contains no images. You choose the movement name yourself, and it may be at most 80 characters long; please do not enter personal information you would prefer not to keep on the device. The App does not actively upload these files.
After you confirm a trimmed recording, a new movement may also include a lightweight skeleton sequence for demonstration playback: the clip duration and up to 128 frames of relative timestamps, normalized two-dimensional joint coordinates, and bone connections. When you save the movement, this sequence is stored in the same movement file to provide a looping guide during counting and is deleted with that movement. The skeleton sequence contains no images, video, or audio. It is used locally on your device and is not actively uploaded.
2.4 Language Preference
The interface language you select in settings is written as a single BCP-47 language tag into the file settings/locale.json inside the application support directory. That file contains nothing but the language tag and likewise remains on your device.
2.5 Recording Display Preference
When you choose in settings whether the recording preview uses the halftone-dot style, the App writes one Boolean value into settings/recording-style.json inside the application support directory. That file records only this display preference; it contains no camera footage, pose data, or other content, and likewise remains on your device.
2.6 Spoken Counts and Audio
The App plays local cue sounds shipped inside the application package and calls the operating system’s speech synthesis to speak repetition counts, countdown numbers, and fixed operation prompts. The text submitted to speech synthesis does not include movement names that you enter. Speech synthesis is performed by the operating system; its behavior, including whether a network connection is required and how the text to be spoken is handled, depends on the speech engine you have selected in your system settings and is governed by that engine provider’s policies. The App does not record audio and does not request microphone access.
The current version does not provide account registration or sign-in and does not collect names, phone numbers, email addresses, passwords, location, contacts, advertising identifiers, or payment credentials such as card numbers. It does not integrate advertising, behavioral analytics, crash-reporting, or cloud-sync SDKs. If a future version adds accounts, cloud sync, push notifications, analytics or advertising, we will update this Policy before processing the relevant information and provide any notice or obtain any consent required by law.
2.8 Training History
After you finish a workout, the App stores training history in training/history.json inside the application support directory to display the training heatmap, total training days, and consecutive training days. The file contains a schema version and each workout's random identifier, local calendar date at completion, and repetition count. It contains no movement names, images, or pose trajectories. Corrections on the result screen update the same workout record; correcting its count to zero removes that record. Development demonstrations are excluded, and workouts completed before this feature was enabled are not reconstructed. Training history stays on your device; the App does not actively upload it.
The iOS version offers monthly and yearly subscriptions through Apple StoreKit. The App obtains product identifiers, display prices, subscription periods, free-trial offers and eligibility, and reads StoreKit-verified purchase and entitlement status, expiration and revocation information to display purchase options, restore purchases, and control access to movement learning and counting. Purchasing and restoring may communicate with Apple services. We do not receive payment credentials such as your card number, and do not send camera footage, movement models, or training history to Apple for purchase verification. Apple handles account, transaction, and payment information under its Privacy Policy. Deleting the App or local data does not cancel an Apple subscription or delete transaction records held by Apple. The Android version does not use this subscription service.
2.10 Local Experience Without a Subscription
If you explicitly start the seven-day local experience, the iOS version stores a device-only Keychain record containing its schema version, first start and fixed expiration times, last checked time, device uptime, and an invalidation flag. This restores the experience status and prevents a repeated start from extending the deadline. Starting this experience does not initiate an Apple purchase, charge you, or renew automatically. This record contains no camera footage, movements, or payment information. It is not uploaded to our servers or cloud-synced by the App. It remains after expiration to identify that the device has used the experience; deleting ordinary app preferences or uninstalling does not guarantee deletion of the Keychain record. Device resets, system behavior, or switching devices may affect it, and cross-device recognition is not guaranteed. Corruption, storage errors, or a substantial clock rollback may make the experience unavailable or invalid, without changing verified Apple subscription access.
3. Device Permissions
The App requests a single device permission:
On iOS, the App declares only a camera usage description, which reads: “ActiCount uses the camera to recognize movements and count repetitions on your device. Footage is never uploaded.”
On Android, release builds use a separate manifest that removes the network access, network state, audio recording, storage read and write, wake lock, and boot broadcast permissions introduced by dependencies for their optional features, retaining only the camera permission. Debug builds retain the network permission solely for the Flutter debugging service; such builds are not distributed to you through app stores.
We request permissions only when you use the relevant feature. You may manage or revoke permissions at any time in your device settings. Revoking consent does not affect processing lawfully carried out before the revocation.
4. Purposes and Legal Bases
We process information only for the following purposes and where permitted by applicable law:
- to recognize human poses, learn the movement you demonstrate, count repetitions, and announce counts, as you request;
- to store your movement models, language preference, and recording display preference so that they remain available the next time you use the App;
- to display subscription products, verify and restore purchases, manage the local experience you explicitly select, and determine feature access on iOS;
- to maintain the stability and security of the features; and
- to comply with legal obligations and address security, fraud, or rights-protection matters.
Where consent is required, we obtain it before processing. Where applicable, we may also process information as necessary to perform our agreement with you, comply with legal obligations, or pursue legitimate interests that are not overridden by your rights.
5. Sharing, Transfer, and Public Disclosure
The App has no backend service, uploads nothing to our servers, and we do not sell or rent your personal information. Apple subscription processing is described in Section 2.9. Other exceptions are:
- where required by applicable law, a court order, or a lawful request from a competent authority;
- where permitted by law to protect the life, property, safety, or legal rights of you, us, or others; or
- in connection with a merger, acquisition, restructuring, or asset transfer, in which case we will provide legally required notice and require the recipient to remain bound by this Policy or equivalent protections.
Separately, the App calls the speech synthesis capability provided by the operating system to speak repetition counts, countdown numbers, and fixed operation prompts. That capability is performed by the operating system, its handling of the text to be spoken is governed by the operating-system provider’s policies, and it is outside our control. The text submitted to it does not include movement names that you enter.
6. Storage, Retention, and International Transfers
The App persistently stores saved movement model files, the language preference file, the recording display preference file, and training history on your device, together with the iOS local experience Keychain record described in Section 2.10. You can delete individual movement models in the App; deleting a movement model does not delete training history. Training history and preference files remain until you clear the App’s stored data in your system settings or uninstall the App. Camera footage and the temporary thumbnails held during a session are processed in real time and are not persistently stored.
Because the current version does not transmit any information to our servers, we do not currently initiate international transfers of your personal information. If international transfers are introduced in the future, we will provide advance information about the recipient, purposes, data categories, and safeguards, and complete any procedures required by applicable law.
The App does not actively upload the local files described above to our servers or to a cloud-sync service. The operating system may, however, include application data in a device backup or migration according to your device, account, and backup settings. Such processing is controlled by the operating-system provider and governed by its policies. You can manage the relevant backup and migration options in your system settings.
We use technical and organizational measures appropriate to the risk and follow the principle of data minimization. In the current version, pose inference and training-data processing take place on the device, reducing risks associated with network transmission and server storage. Sections 2.6, 2.9, and 6 explain the boundaries for operating-system speech synthesis and backup or migration. However, no technology can guarantee absolute security. Please protect your device and operating-system account and install security updates promptly.
If a personal-information security incident occurs and applicable law requires notification, we will inform you of the nature and potential impact of the incident, measures taken or proposed, and steps you may take to reduce risk.
8. Your Rights and Data Deletion
Subject to applicable law, you may have rights to access, correct, copy, delete, or restrict the processing of your personal information, withdraw consent, or object and lodge a complaint.
Because the current version stores App-managed data locally, you can delete an individual saved movement from the movement list inside the App, clear the App’s stored data in your system settings, or uninstall the App to remove locally stored movement and training data; the Keychain experience record is described in Section 2.10. You may also contact us using the details below for assistance. Please note that we cannot remotely retrieve or delete information that the App does not transmit to our servers. Whether deleting data from the device also deletes copies held in an operating-system backup depends on the operating-system provider’s backup rules and your settings.
We generally respond within 15 business days after verifying your request and receiving the information needed to process it, unless a different period is required by applicable law.
9. Children and Minors
The App is not directed to children under 14. If you are under 14, do not use the App without the consent and guidance of a parent or other guardian. If your jurisdiction sets a different age of digital consent, the local requirement applies. A guardian who believes a child has provided personal information to us may contact us, and we will handle or delete verified information as required by law.
10. Third-Party Services and Links
The App may display external links that you choose to visit. We do not control third-party services, and their handling of information is governed by their own privacy policies. We recommend reviewing those policies before use.
The current version does not integrate third-party advertising, behavioral analytics, crash-reporting, account sign-in, or cloud-storage services. Apple subscription services used on iOS are described in Section 2.9. The App ships its pose-model weights inside the application package and includes third-party software components such as ONNX Runtime to perform inference and other application functions on the device. Using these local components does not require sending camera footage, keypoints, or saved movement models to their providers. If a third-party service that receives information from the device is introduced later, this Policy will identify the third party, its purpose, the information categories, and how to obtain its privacy policy.
11. Changes to This Policy
We may update this Policy to reflect changes in features, technology, or legal requirements. For material changes, we will notify you through an in-App pop-up, prominent notice, or another appropriate method, and obtain renewed consent where required. The “Last Updated” date at the top indicates the latest revision.
If you have questions, comments, or complaints about this Policy, our processing of personal information, or your rights, contact:
- Operator: Shanghai Infinite Imagination Information Technology Co., Ltd
- Privacy email: [email protected]
- Address: Floor 3, Building 19, Block 8, No. 498 Guoshoujing Road, China (Shanghai) Pilot Free Trade Zone, Shanghai, China
We do not operate a customer-service telephone line or an online support form. The email address above is the only channel for contacting us.
If you are dissatisfied with our response, you may also lodge a complaint with the competent data protection, cybersecurity, telecommunications, consumer protection, or other regulatory authority.