Privacy Policy for the Plasticity iPad App
Last updated: 23 August 2026
This Privacy Policy explains how personal data is processed when you use the Plasticity iPad application ("Plasticity", "the app").
1. Data Controller
The controller responsible for the processing of your personal data within the meaning of the GDPR is:
Viktoriia Hrodetska
Heidenheimer Strasse 24
85748 Garching bei Muenchen
Germany
Email: info.foodb@gmail.com
You can contact the controller at any time if you have questions about this Privacy Policy or wish to exercise your data protection rights.
2. Overview
Plasticity is an AI-native iPad notebook for students who get stuck in the middle of handwritten work. You import a PDF or image, write with Apple Pencil, and can choose to ask a question by voice or text. After you grant AI-processing permission and ask Clay, Plasticity sends the disclosed page and question data to OpenAI's AI models, which return a teaching explanation and structured visual annotations that Plasticity draws over your work.
AI tutoring is a paid feature unlocked through a subscription purchased via the App Store and managed by RevenueCat. Plasticity is designed to minimize personal data collection:
- Plasticity does not require a user account, login, or profile, even for paid features. Subscription status is tied only to RevenueCat's own anonymous per-install identifier.
- Plasticity does not use third-party advertising networks.
- Plasticity does not use general-purpose analytics or advertising-tracking SDKs.
- The OpenAI API key is never shipped inside the app. Tutor and text-to-speech requests are relayed through a Supabase Edge Function that holds the key server-side and only forwards a request after confirming an active subscription.
- Notebooks, imported pages, ink, tutor marks, and conversation history are saved locally in the app's iOS sandbox so that notebooks remain available after the app closes. Plasticity does not provide cloud sync and does not upload complete notebooks to a controller-operated document store.
- No tutor or OpenAI text-to-speech request is sent until you complete Clay's onboarding and explicitly allow the disclosed AI processing. You may dismiss onboarding and continue using local notebook features. Tapping Clay presents the permission flow again, and permission can be withdrawn in Settings.
- Plasticity requests microphone and speech-recognition permissions to support push-to-talk questions. It does not request photo library, camera, contacts, or location permissions. Documents are imported through the system file picker rather than your photo library.
Providing AI tutoring, drawing recognition, voice interaction, and subscription management requires sending some of your notebook content, questions, and subscription identifier to the external service providers described below.
3. Data You Provide and How It Is Used
Plasticity stores the following notebook data locally on your device and sends the listed subset for AI processing only after the permission and user action described in Sections 4 and 5:
- Page content: images of the current notebook page, including any imported PDF or image content, your handwritten ink, and previous AI-drawn teaching marks.
- Viewport information: a magnified crop of the page region you are currently viewing (when zoomed in) and the coordinates of that region, so the tutor can read fine handwriting and know where your attention is.
- Questions: text you type, or speech you dictate using push-to-talk, converted to text by Apple's speech-recognition framework (Section 6).
- Conversation history: your questions and tutor replies are saved with the notebook locally; a limited recent portion is included in a tutor request to keep the conversation coherent across turns.
- Retained scene data: identifiers and positions of teaching marks and questions the tutor has previously placed on the page, so later turns can revise or remove them consistently.
Purpose: to provide the core notebook, drawing, and AI tutoring features you request.
Legal basis:
- Art. 6(1)(b) GDPR, where processing is necessary to provide the app features you request.
- Art. 6(1)(f) GDPR, where processing is necessary for app security, troubleshooting, or maintaining reliable functionality.
Retention on your device: notebook pages, imported content, ink, tutor marks, and conversation history remain in the app's local sandbox until you delete the notebook or uninstall the app. Plasticity does not currently provide a controller-operated cloud backup or sync service. Copies included in iOS device backups are controlled by your Apple and device backup settings. Off-device retention by service providers is described in Sections 5–7.
4. Content You Choose to Write, Draw, or Say
When you allow AI processing and ask Clay, Plasticity sends the current page image, not the entire notebook, and the related request data described in Section 5. Whatever appears on that page or in your question may therefore be included. This may occasionally include information that reveals special categories of personal data under Art. 9 GDPR, for example if a homework problem, question, or note happens to reference your health, religion, or another sensitive topic.
Plasticity does not ask you to enter this kind of information, and you should avoid writing names, addresses, contact details, health information, or other identifying details on the page or in spoken questions unless the academic task genuinely requires it. Where such information is processed because you chose to include it on the page or in a question, processing is based on your consent under Art. 6(1)(a) GDPR and, where applicable, Art. 9(2)(a) GDPR. You may withdraw AI-processing permission at any time in Plasticity Settings. Withdrawal stops future tutor and OpenAI text-to-speech requests but does not retroactively affect processing that already occurred. You can separately delete locally stored content by deleting the notebook or uninstalling the app.
Plasticity is not a medical, therapeutic, or professional service. Tutor explanations are educational and informational only.
5. AI Tutoring and Text-to-Speech via OpenAI
Before the first tutor request, Clay's onboarding identifies OpenAI and Supabase and summarizes the data sharing below. You must select an unchecked permission box stating, “I agree that Plasticity may send the information described above through Supabase to OpenAI to provide Clay’s AI features,” before Continue becomes available. Dismissing the flow sends no tutor content to OpenAI and leaves local notebook features available. Plasticity also checks this permission at the tutor interface and again before making an OpenAI-backed network request.
When an authorized subscriber asks a question, Plasticity sends the following to its Supabase Edge Function:
- The current page image, including visible handwriting, imported page content, pasted images, and existing tutor marks.
- An optional magnified crop and viewport coordinates when the page is zoomed.
- The typed question or the transcript produced through Apple's speech-recognition service.
- A limited recent portion of the conversation.
- Retained tutor-scene identifiers, positions, status, and other context needed to update teaching marks consistently.
- A pseudonymous, one-way hashed safety identifier. OpenAI does not receive the raw RevenueCat appUserID.
The Edge Function forwards the AI request to OpenAI's Responses API. If you enable spoken answers, the generated reply text is separately sent through the same proxy to OpenAI's text-to-speech API, which returns synthesized audio. If permission is not active, no OpenAI-backed request is made. If the subscription is not active, the tutor request is not forwarded and the app presents subscription options; local Apple speech synthesis remains available as a fallback where applicable.
Provider: OpenAI, together with its Ireland and U.S. group entities.
Purpose:
- Generating the tutor's explanation and structured visual annotations.
- Generating spoken narration of the tutor's reply.
- Troubleshooting failed or incomplete requests.
Legal basis:
- Art. 6(1)(b) GDPR, because AI tutoring and narration are the core functionality you request and pay for.
- Art. 6(1)(f) GDPR for troubleshooting, fraud prevention, and maintaining reliable operation.
- Art. 6(1)(a) GDPR and Art. 9(2)(a) GDPR where the page or question includes optional special-category information, as described in Section 4.
OpenAI's output is used only to generate teaching explanations, visual annotations, and narration. Plasticity does not use AI to make legally binding decisions about you and does not carry out automated decision-making within the meaning of Art. 22 GDPR that produces legal or similarly significant effects.
Data handling and retention: Plasticity's proxy forces `store: false` for Responses API requests. OpenAI states that API inputs and outputs are not used to train its models unless the API customer explicitly opts in. Under OpenAI's default API controls, abuse-monitoring logs may contain prompts, responses, and related metadata and may be retained for up to 30 days, unless law requires longer retention or different retention controls apply. OpenAI's published controls and any account-level retention configuration may change; current details are available in OpenAI's API data-control documentation.
6. Subscriptions, Payments, and RevenueCat
AI tutoring and OpenAI-powered narration are unlocked through a Plasticity subscription purchased through the App Store and managed using RevenueCat. There are no Plasticity user accounts: the only identity involved is RevenueCat's own anonymous, per-install appUserID, generated on-device and used to check entitlement status both in the app and by the Supabase proxy in Section 7.
Apple App Store. Payments are handled by Apple through your Apple ID. Plasticity does not receive or store your full payment card details. Apple may process Apple account data, purchase history, device information, payment information, and fraud-prevention information under Apple's own privacy terms.
Provider: Apple Distribution International Ltd., Ireland, and Apple group companies.
Purpose: app distribution, in-app purchases, subscriptions, refunds, and fraud prevention.
Legal basis: Art. 6(1)(b) GDPR for subscription access and Art. 6(1)(c) GDPR where legal retention obligations apply.
RevenueCat. Plasticity uses RevenueCat to manage the subscription, validate App Store receipts, restore purchases, display the paywall, and determine whether your install has an active "premium" entitlement.
Provider: RevenueCat, Inc., USA.
Data processed may include:
- The anonymous per-install appUserID.
- App Store receipt and transaction information.
- Product identifiers and subscription/entitlement status.
- Restore-purchase events.
- Technical device and app information needed for subscription management.
Purpose: subscription management, purchase validation, entitlement verification, restore purchases, and paywall display.
Legal basis: Art. 6(1)(b) GDPR for subscription functionality and Art. 6(1)(f) GDPR for fraud prevention and reliable operation of subscription features.
The in-app paywall's Terms of Service and Privacy Policy links open in an in-app browser and point to whatever URLs are configured for the offering in the RevenueCat dashboard.
Retention: Apple and RevenueCat may retain purchase, receipt, entitlement, device, and fraud-prevention records for the periods needed to provide subscriptions, maintain transaction history, meet accounting or legal obligations, resolve disputes, and prevent fraud under their respective policies. Deleting Plasticity does not by itself cancel an App Store subscription or erase records Apple or RevenueCat must retain. You can manage or cancel the subscription through Apple and may contact the controller regarding rights requests associated with the RevenueCat appUserID.
7. Server-Side Proxy: Supabase
Plasticity uses a Supabase Edge Function (openai-proxy) as a tightly limited relay between the app and OpenAI, so the OpenAI API key never ships inside the app binary.
Provider: Supabase, Inc., USA.
After the app's AI-permission checks allow a tutor or text-to-speech request, the Edge Function receives your RevenueCat appUserID and the applicable request payload. It calls RevenueCat's API to confirm an active subscription, records quota usage under a one-way hash of the installation identifier, and sends the validated AI payload to OpenAI using a server-side key only if the entitlement and quota checks succeed. The raw RevenueCat appUserID is used for the RevenueCat entitlement check and is not forwarded to OpenAI.
Data processed may include:
- The anonymous per-install appUserID, used to check entitlement with RevenueCat and transformed into one-way hashes for quota and safety controls.
- The request payload described in Sections 3–5, passed through to OpenAI.
- One-way hashed per-install request counters organized into burst, daily, and monthly usage windows.
- The request IP address, processed in memory for short-term rate limiting and potentially present in infrastructure security logs.
- Technical logs needed to operate, secure, and troubleshoot the function.
Purpose: keeping the OpenAI API key server-side, checking subscription entitlement before allowing a request, enforcing request and abuse limits, and routing AI/TTS requests.
Legal basis: Art. 6(1)(b) GDPR for providing the requested AI functionality and Art. 6(1)(f) GDPR for security and reliable operation.
Retention: Plasticity's application database does not persist page images, questions, prompts, answers, narration text, raw RevenueCat appUserIDs, or IP addresses. IP-based burst-limit entries exist only in the active Edge Function instance and expire after a short rolling window. The database stores one-way hashed request counters needed for abuse prevention and cost limits. Old quota windows are periodically deleted after the current and recent monthly windows. Supabase may also process and retain operational or security logs according to its service configuration and published terms. You may contact the controller to request deletion of server-side data associated with your pseudonymous identifier where applicable.
8. Speech Recognition via Apple
When you use push-to-talk, your speech is processed using Apple's Speech framework (SFSpeechRecognizer), which converts your spoken question to text. Depending on your device, language, and Apple's own configuration, this processing may occur entirely on your device or may involve Apple's servers. This processing is governed by Apple's own privacy policy and iOS permission settings, not by the controller.
Purpose: converting spoken questions to text so they can be sent to the AI tutor as described in Section 5.
Legal basis: Art. 6(1)(b) GDPR, because voice input is a feature you actively choose to use, together with the microphone and speech-recognition permissions you grant on your device.
9. Email and Support Requests
If you contact the controller by email or another support channel, the contact details and message content you provide are processed to respond to your request.
Purpose: responding to your request and handling any data protection rights request.
Legal basis:
- Art. 6(1)(b) GDPR where the request relates to your use of the app.
- Art. 6(1)(f) GDPR for general support and documentation.
Retention: support communications are retained only for as long as needed to answer the request and, where necessary, for statutory limitation or documentation periods.
10. Access to and Storage on Your Device under the TDDDG
Plasticity stores and reads information on your device, including notebook pages, ink, imported documents, conversation history, tutor marks, AI permission state, onboarding state, and the RevenueCat anonymous identifier. Notebook data remains locally stored until you delete the notebook or uninstall the app. To the extent the TDDDG applies, this strictly necessary local storage is based on Section 25(2) TDDDG and does not require separate consent. Plasticity does not currently use cookies, advertising identifiers, third-party tracking technologies, or analytics identifiers. If non-essential tracking or analytics technologies are added in the future, Plasticity will request any legally required consent before using them.
11. Third-Party Service Providers
Plasticity currently uses the following relevant third-party service providers:
OpenAI Ireland Limited / OpenAI, L.L.C. and affiliates
- Role: AI processor/service provider accessed through the Supabase proxy
- Data categories: Page images, viewport crops, questions and voice transcripts, conversation history, retained scene data, generated text and audio
- Purpose: AI tutoring, structured visual annotations, and text-to-speech narration
Supabase, Inc.
- Role: Backend infrastructure processor/service provider
- Data categories: RevenueCat anonymous appUserID, one-way hashed usage counters, request IP address, request payloads passed through to OpenAI, technical logs
- Purpose: Edge Function proxy, subscription entitlement check, quota enforcement, backend security, troubleshooting
RevenueCat, Inc.
- Role: Subscription management processor/service provider
- Data categories: Anonymous per-install appUserID, receipt and transaction data, entitlement status, technical app and device data
- Purpose: Purchase validation, subscription status, restore purchases, paywall display
Apple Inc. and relevant Apple group entities
- Role: App Store/payment provider and speech-recognition provider
- Data categories: Apple account and purchase data handled by Apple; spoken audio converted to text
- Purpose: App distribution, in-app purchases, subscriptions, fraud prevention, and converting push-to-talk speech to text
These providers may engage subprocessors under their own data processing terms. Plasticity requires every third party that receives personal data from the app to provide the same or equivalent level of protection described in this Policy and required by applicable contractual and legal obligations.
12. International Data Transfers
OpenAI, Supabase, RevenueCat, and their subprocessors may process data outside the European Union or European Economic Area, including in the United States.
Where personal data is transferred to a country outside the EU/EEA, Plasticity relies on appropriate safeguards under Chapter V GDPR, such as:
- An adequacy decision under Art. 45 GDPR, including the EU-US Data Privacy Framework where the recipient is certified and the transfer falls within the certification.
- Standard Contractual Clauses under Art. 46 GDPR.
- Additional technical and organizational safeguards where required.
You may contact the controller to request more information about the safeguards used for international transfers.
13. Data Security
Plasticity uses technical and organizational measures designed to protect data against unauthorized access, loss, misuse, alteration, or disclosure, including:
- Local storage within the iOS app sandbox.
- TLS/HTTPS for all network communication.
- Server-side handling of the OpenAI API key via the Supabase Edge Function, so the key is not embedded in the app binary.
- Anonymous, per-install identifiers instead of real accounts wherever possible.
- Limiting third-party services to those needed for app and subscription functionality.
No method of electronic storage or transmission is completely secure, but processing is kept proportionate and protected.
14. Your Rights
Subject to the legal requirements and limitations of the GDPR, you have the following rights:
- Right of access under Art. 15 GDPR.
- Right to rectification under Art. 16 GDPR.
- Right to erasure under Art. 17 GDPR.
- Right to restriction of processing under Art. 18 GDPR.
- Right to data portability under Art. 20 GDPR.
- Right to object under Art. 21 GDPR.
- Right to withdraw consent at any time under Art. 7(3) GDPR, without affecting processing that occurred before withdrawal.
- Right not to be subject to qualifying automated individual decision-making under Art. 22 GDPR.
- Right to lodge a complaint with a supervisory authority under Art. 77 GDPR.
To exercise your rights, contact: info.foodb@gmail.com
Because Plasticity does not require accounts, the controller may need information that helps identify relevant off-device records, such as your RevenueCat anonymous appUserID, subscription transaction information, support email address, or other details you provide. Notebook content stored only on your iPad is controlled through the app and device rather than through a Plasticity account.
You may also contact the competent data protection supervisory authority. For a private controller established in Bavaria, this is generally:
Bayerisches Landesamt fuer Datenschutzaufsicht (BayLDA)
Promenade 18
91522 Ansbach
Germany
Website: https://www.lda.bayern.de/
You may also lodge a complaint with any other competent data protection authority in the EU member state of your habitual residence, place of work, or place of the alleged infringement.
15. Required or Optional Data
You are not legally required to provide personal data to use Plasticity. However, certain information is necessary for specific features:
- Without a page image and question, Plasticity cannot generate a tutoring response.
- Without granting the AI-processing permission described in Section 5, you can use local notebook features but cannot use Clay's OpenAI-backed tutoring or narration.
- Without an active subscription and the RevenueCat entitlement check it relies on, AI tutoring and OpenAI-powered narration are unavailable; the app will show a paywall instead.
- Without microphone and speech-recognition permission, you can still type questions instead of using push-to-talk.
- Without network access, AI tutoring, subscription validation, and text-to-speech features are unavailable.
16. Children
Plasticity is an educational tool that may be used by learners under 16. If you are under 16, you should use Plasticity, and make any purchase, only with the consent and supervision of a parent, legal guardian, or teacher. We do not knowingly collect personal data from children under 16 without appropriate consent. If you believe a child has provided personal data without appropriate consent, please contact the controller so the data can be deleted where required.
17. Changes to This Privacy Policy
This Privacy Policy may be updated when Plasticity changes its features, service providers, or data processing practices, or when legal requirements change. The latest version will be identified by the "Last updated" date above.