Partcadabra privacy policy

Partcadabra: 3D Print Fixes · Effective date: October 7, 2026 · Last updated: October 2026

The short version

  • Your parts and their files, your printer setup and your fit calibration are saved on your iPhone.
  • Only if you allow AI analysis: a photo of a part you want to replace goes through our server to OpenAI, so the app can suggest what to build; in a design chat, what you write and any photos you add go to OpenAI, whose AI designs the part with our part builder; and a description you type for a phone case goes to OpenAI to be checked and drawn as case designs. Our server does not keep your photos or your case description. It keeps a design chat's messages and designs for up to 90 days, so you can come back to the chat.
  • Previews and builds send only numbers (the sizes you measured, the material, your printer setup and, for a case, the phone model) to our server and our part builder. Our server keeps the part files for about 2 days so your iPhone can download them, and a record of each build for up to 90 days.
  • Partcadabra does not make some kinds of parts, such as firearm parts. Requests for them are blocked and counted, and 3 within 30 days pause Partcadabra's features for 30 days. A photo of a person is refused but not counted.
  • No account, no ads, no tracking, and we never sell your data.

Who we are

Partcadabra is made by Wavista Apps, operated by William Tsao, an individual based in California, USA. Contact: support@wavistaapp.com. Partcadabra's Terms of Use cover subscriptions, credits and printed parts.

What stays on your iPhone

Partcadabra has no account. It saves these only in the app's storage on your iPhone:

  • your printer setup: the printer, its bed size, the nozzle, the filament and the preview colour;
  • your fit calibration: the small size adjustments for each printer and filament that your test slice answers set;
  • your parts: each part's name, the part type, the sizes you entered, the phone model for a case, the build results and checks, your test slice answer, and the part's files (3MF, STL, the test slice and the 3D views);
  • your design chats: each chat's ID on our server and the name the designer gave its part. The messages themselves are kept on our server (see What our server keeps);
  • the photos you take or pick for a photo read or a design chat, in the app's temporary storage. They are not saved with your parts, and iOS may clear them at any time;
  • your setup answers, your AI choice, how many credits you have left, and your settings;
  • if you start a free trial of Partcadabra Pro and allow notifications, one reminder scheduled on your iPhone before the trial ends. It is made and shown on your iPhone; nothing about it is sent to us.

A part's name can come from what the photo read saw (for example "A cracked dishwasher rack clip"). The description you type for a case is kept only in the app's memory while you make the case, and is not saved. Files you export go only where you send them. If you back up your iPhone to iCloud or a computer, the backup includes this data, as it does for any app.

What leaves your iPhone, and who receives it

Our server and OpenAI (photo reads, design chats and case designs)

AI analysis needs your permission. The app asks on a consent screen first, and if you choose Not now, no photo or description is sent to our server or to OpenAI.

  • Photo read: when you photograph a part you want to replace, the app sends our server 1 or 2 photos of it (from the top, and from the side if you add one). Before a photo leaves your iPhone, the app crops a camera photo to the frame, shrinks it and saves it again as a new image, which leaves out its metadata, including any location. Our server removes any remaining metadata and sends the photos to OpenAI, which says what the part is, suggests a part type, estimates some sizes from a card in the frame and checks whether it is a part Partcadabra does not make. OpenAI does not get your name or the app's anonymous ID.
  • Design chat: when you describe a part in a design chat, the app sends our server what you write (up to 2,000 characters), your printer setup (the material, nozzle, bed size, calibration adjustments and preview colour) and up to 4 photos you add, prepared on your iPhone as for a photo read. Our server first sends what you write to OpenAI to check that it is not a part Partcadabra does not make. Then OpenAI's AI designer gets the chat so far (your messages, its earlier answers and its current design), the photos of this message and your printer setup. When the look of the part matters, the designer may first describe it to OpenAI's image AI, which draws a sketch you see in the chat (the request is only the designer's words, with no photo and no ID). Then the designer writes a description of the part for our part builder, which builds it, measures the sizes the designer was asked to check and draws pictures of it. The designer looks at these and corrects the part until every size passes, or asks you a question. OpenAI does not get your name or the app's anonymous ID.
  • The card in the photo: the app asks you to lay a bank-card-sized card next to the part, number side down, for scale. Anything printed on the side that faces up is in the photo, and goes to our server and OpenAI with it.
  • Case designs: when you describe the look you want on a phone case (up to 300 characters), our server first sends the description to OpenAI to check that it is not something Partcadabra does not make. Then it asks OpenAI's image service to draw 3 designs. That request carries your description, our instructions, a plain outline of the chosen phone model's case back (made by our part builder, not a photo), and a scrambled form of the app's anonymous ID (a salted hash) so OpenAI can act on misuse from one user. It never sends your name or the ID itself. No photo of yours is used for a case.

Our server keeps your photos and your case description in memory only while it works, and does not save them or write them to its logs. A design chat's photos are held in memory only while the designer works on that message (at most about 10 minutes); what you write in a chat is kept, as described under What our server keeps. We send the photo read, the design chat and the text checks with OpenAI's storage option turned off (store=false), and OpenAI's image service keeps no stored copy of the drawing request. OpenAI does not use API data to train its models. It may keep API data for up to 30 days only to check for misuse, and then deletes it.

Withdraw your permission at any time: Settings, Use AI analysis. This stops part photos, design chat messages and case descriptions from leaving your iPhone. Previews and builds do not use AI, so they still send their numbers to our server, as described next.

Our server and our part builder (previews and builds)

When you ask for a free preview or build a part, the app sends our server the part type, the sizes you entered (your caliper readings and any other sizes), the material, your printer's nozzle and bed size, your calibration adjustments and the preview colour. For a phone case it also sends the phone model and, if you picked a case design, which one. When you answer the test slice question (too tight, fits or too loose), the app sends that answer too. No photo is sent with a preview or a build.

Our server passes these numbers, and for a case the design you picked, to our part builder. The part builder is our own separate service on Fly.io. It fills in our part templates with the numbers, measures the result and sends back the files. It never receives the app's anonymous ID, and it keeps nothing after each build.

In a design chat, our part builder gets the designer's description of the part (which can include words you asked to have on it), the sizes to check and your printer setup. It never gets your photos, your messages or the app's anonymous ID. Building a chat's design later sends the same, so a chat's part is built the way you saw it in the chat.

Files. Our server saves each finished part's files (3MF, STL, the test slice and the 3D views), each preview's picture, the pictures and sketches of each design in a design chat, and each case design in private storage (Cloudflare R2), filed under the scrambled ID. Your iPhone downloads them through private links that work for 24 hours, and they are deleted after about 2 days. When your iPhone downloads a file, Cloudflare sees your IP address as part of that connection. Each case design carries a label inside the file saying it was made with AI, which app and AI model were used, when, and a random number for that design. The label never includes your name, your anonymous ID or where you are.

What our server keeps

Every request to our server carries the app's anonymous ID (a random ID created by RevenueCat, see below), so the server can check your subscription, credits and limits. Our server keeps:

  • A record of each build: the numbers it was built from (as listed above), the phone model and design for a case, the designer's description of the part for a design from a chat, the build result (the checks, measured sizes, size and weight of the part), where its files were stored, what paid for it (one of the builds Partcadabra Pro includes, or a credit, and for which month), its free re-fits and your test slice answer. It is tied to a scrambled form of the anonymous ID (a salted hash), not the ID itself, and never includes a photo. Records are deleted 90 days after the build.
  • The design a case was built with: when a case is built with a design you picked, its record keeps a small black and white copy of that design (at most about 100 KB), so a free re-fit still works after the design's 2 days in storage. It was drawn by AI from your description and is never a photo. It is deleted with the build record.
  • Your design chats: your messages (and how many photos each had, never the photos themselves), the designer's answers, its current description of the part with the sizes it checks and their results, and the part of the conversation the designer needs to carry on (its earlier attempts and working notes are dropped). They are tied to the scrambled ID. A chat is deleted 90 days after you started it.
  • A record of each set of case designs: the case type, the phone model, which designs were drawn and whether it worked, tied to the scrambled ID. It never includes your description. Records are deleted after 90 days.
  • A record of each AI request: the time, the feature, which kind of AI answered, whether it worked, how long it took, its cost and the confidence of the answer. It is tied to the scrambled ID and never includes photos or descriptions. Records are deleted after 90 days.
  • Usage counts for your limits, tied to the scrambled ID: photo reads, previews, design chat messages and sets of case designs each day, sets of case designs each month, and the builds Partcadabra Pro included each month. They are deleted within 90 days after their day or month ends. The count of builds made during a free trial, and the count of free design chat messages used, are kept so those limits keep working.
  • Counts of blocked requests, by day, tied to the scrambled ID (see Parts Partcadabra does not make). They are deleted after 90 days, and Delete my data does not delete the ones from the last 30 days.
  • How many credits you have used, tied to the scrambled ID. This is a purchase record, so it is kept, even after Delete my data, so that credits you already used are not given back.
  • Your subscription and credit status: the anonymous ID with your Partcadabra Pro product, its expiry date, whether it is a free trial, whether it was a test purchase, and how many credits you bought. RevenueCat sends this to our server when your purchases change, and our server also asks RevenueCat for it when it checks your access. We keep it until you use Delete my data.

Our server uses your IP address for a moment, in memory, to limit how many requests one connection can make. It does not save it in its database or its logs. Our server runs on Fly.io, and its database is hosted by Supabase, both in the United States. Every hour we save a backup copy of that database in a separate private storage bucket at Cloudflare R2. Each copy is encrypted before it is uploaded, with a key that only we hold, so Cloudflare cannot read it. We use backups only to recover the database if something goes wrong.

RevenueCat (Partcadabra Pro and part credits)

RevenueCat runs the Partcadabra Pro subscription and part credit purchases for us. It receives the app's random anonymous ID, your App Store purchase records (what you bought, when, its price, and trial and renewal status) and technical details such as the iOS and app version. Its software also sends the identifier for vendor, an ID that Apple gives our apps on your iPhone. RevenueCat never gets your name, email or payment card. Your subscription belongs to your Apple Account, so Restore purchases brings it back on a new iPhone or after a reinstall. Credits are counted under the app's anonymous ID, not an account, so credits you buy stay in the app on this iPhone and are not restored if you delete the app. If you installed the app from an ad on the App Store (Apple Ads), Apple tells RevenueCat which ad campaign, ad group and search keyword led to the install, so we can see whether our ads pay for themselves. This is Apple's own ad attribution: it does not use the advertising identifier and needs no tracking permission. Apple handles payment.

PostHog (usage analytics)

We use PostHog to see how the app is used, so we can find problems and improve it. Analytics are on when you install the app, and you can turn them off at any time in Settings, Share usage analytics. When they are off, the app sends nothing to PostHog. When they are on, PostHog receives, tied to the anonymous ID:

  • your two setup answers, both picked from a list: which printer you use and which filament you print with most;
  • events such as opening the app, setup steps viewed, finishing setup, your camera and notification permission answers, your AI choice, when the subscription screen was shown, each step of buying Partcadabra Pro or a part credit (started, cancelled, failed with RevenueCat's error code, or completed, with the offer shown and the product), trials, restores (with the offer shown), when a photo read, preview or build started, finished (how long it took, and the read's confidence) or failed (an error code), when you asked for case designs or sent a design chat message, or that request failed (an error code), and when you open the share options for a part file;
  • details the PostHog software adds, such as the app version, iOS version, device model, language, time zone and screen size.

PostHog never receives your photos, design chat messages, case descriptions, part names, the sizes you measured, your calibration or your part files. Session recording, touch tracking and location lookup from your IP address are turned off. PostHog does not store your IP address.

Sentry (crash reports)

If the app crashes or hits an error, it sends a report to Sentry so we can fix it: what went wrong and where in the app, the device model, iOS and app version, which app update it is running, a random ID Sentry makes for the install, and a short trail of what the app did just before. For about 1 in 10 sessions it also sends performance timings. Reports do not include the anonymous ID. Before a report is sent, the app cuts a failed database save down to the kind of action and the table name, so a report never includes what you were saving (such as a part's name or sizes). It also leaves out request details and console logs. Sentry does not store your IP address.

Expo (app updates)

Each time the app starts, it asks Expo's update server (EAS Update) whether an update for the app is waiting, and downloads it if there is one. The request carries the operating system, which version of the app's code is running (its runtime version, update channel and update IDs) and a random install ID that Expo's software creates on your iPhone. If the app stopped with an error while it was starting, the next check also sends the text of that error, so a faulty update can be found and undone. Apart from that text, the request does not include your name, an account, the app's anonymous ID or your photos, descriptions, parts or measurements. Like any server, Expo sees the IP address the request comes from. The check runs for everyone, including while the age protections under Children are on, because it only keeps the app working. See Expo's privacy policy.

Apple

Apple handles the App Store, payments and subscriptions, the age range check described under Children, Quick Look (which shows your built parts in 3D and in AR on your iPhone), the share sheet and iPhone backups under Apple's own privacy policy.

Email to support

If you email us, we receive your email address, your message and the details that Contact support adds (app version, iOS version and the anonymous ID). We use them only to help you. We keep support emails for 2 years after your last message, then delete them. Cloudflare forwards them to our Gmail (Google) inbox.

Parts Partcadabra does not make

Partcadabra does not make firearms or any firearm part or accessory, magazines, suppressors, solvent traps, auto sears or switches; knives and blades, brass knuckles, lock-picking or handcuff-bypass tools; vehicle brakes, steering or seat belts; child seats, cribs or strollers; helmets or other protective gear; parts for climbing, lifting or overhead loads; gas, fuel or pressure fittings; enclosures or parts for mains-voltage electrics; medical devices or prosthetics; or named characters, franchises and logos. It also does not use photos where a person is the subject, or designs that show a real person.

The photo read, the design chat's message check and the case description check look for these. When one is found, the request is refused, and our server adds one to that day's count of blocked requests, tied to the scrambled ID. A photo where a person is the subject, or a design that shows a real person, is refused but not counted. In a design chat the AI designer may also refuse to make a part; that refusal is not counted. After 3 blocked requests within 30 days, Partcadabra's photo reads, design chats, case designs, previews and builds stop working for that ID for 30 days from the last of those 3. The count is kept for 90 days, and Delete my data does not delete counts from the last 30 days, so deleting your data cannot reopen these features early. Credits you bought are not used up while the features are closed, and you can use them again once they reopen. A pause does not cancel a Partcadabra Pro subscription (see the Terms of Use). If you think a request was blocked by mistake, email us.

Permissions

  • Camera: to photograph the part you want to replace, or a part or the place it goes for a design chat.
  • Photos: to choose a photo of a part. The app opens Apple's photo picker, which gives it only the photo you pick, so Partcadabra never asks for access to your photo library.
  • Notifications: only for one reminder before a free trial of Partcadabra Pro ends, if you allow it.

Partcadabra does not use your location, contacts, microphone, motion or Apple Health.

How long data is kept

  • On your iPhone: until you delete it, use Delete my data or delete the app. Photos taken for a photo read stay in the app's temporary storage until iOS clears it, or you use Delete my data or delete the app.
  • Photos and case descriptions you send, on our server: not stored, only held in memory while it works.
  • Design chats on our server (messages and designs): 90 days after the chat started.
  • Part files, preview pictures, design pictures and case designs on our server: about 2 days.
  • At OpenAI: up to 30 days, only for misuse checks.
  • Build records (with the design a case was built with) and case design records on our server: 90 days.
  • Request records and usage counts on our server: 90 days (usage counts once their day or month ends; the count of builds made during a free trial is kept longer, so the trial limit works).
  • Counts of blocked requests: 90 days. Delete my data does not delete the ones from the last 30 days.
  • Encrypted backups of our server's database: hourly copies for 3 days and daily copies for 35 days, then deleted automatically. Anything removed from the database, including by Delete my data, is gone from every backup within 35 days.
  • Credits used: kept as a purchase record.
  • Subscription and credit status on our server: until you use Delete my data.
  • RevenueCat: for as long as we offer the app, so your subscription can be restored and your credits checked.
  • PostHog: up to 1 year, or until you use Delete my data.
  • Sentry: 30 days.
  • Expo: only as long as Expo reasonably needs it, as its privacy policy says; it names no fixed period.

Delete my data

Open Settings and tap Delete my data. The app deletes everything it saved on your iPhone right away (your parts and their files, your list of design chats, your printer setup and fit calibration, the photos it saved, your answers and your choices) and starts again from the beginning. Analytics are turned off on that iPhone until you turn them on again in Settings. Files you already exported or shared stay where they are, and so does a scheduled reminder before a free trial ends, because your subscription stays active. Then it asks our server to:

  • ask PostHog to delete your analytics profile and its events;
  • delete your build records (with the designs your cases were built with), your design chats, your case design records, every file of yours in storage (part files, preview pictures and case designs) and your subscription and credit status record;
  • remove the scrambled ID from your request records, so they can no longer be tied to you (they are still deleted at 90 days);
  • delete your usage counts that no longer apply. Counts for limits still running (today, this month, a free trial and the free design chat messages) stay so the limits keep working, and so do counts of blocked requests from the last 30 days. The count of credits you used stays too, as a purchase record.

Backups made before the deletion still hold the old records until those copies are deleted, at most 35 days later. Nobody can read a backup without our encryption key, and we use backups only to recover the database after a failure.

If your iPhone is offline or our server cannot be reached, the app tries again by itself. While the deletion is waiting for our server, Settings shows it and offers Email support. If you delete the app before then, it can no longer finish this step, so first email us from Contact support (it adds the anonymous ID we need) and we will delete the server copy.

Delete my data does not cancel your subscription or take away credits you bought and have not used, and it does not delete RevenueCat's purchase record, so the next time the app checks your access our server gets your subscription and credit status from RevenueCat again. To ask for your RevenueCat record to be deleted too, email us.

Delete my data does not reach Expo either. Its update checks are tied only to Expo's own random install ID, which we never see, so we cannot find them for you. Deleting the app removes that ID from your iPhone.

Your requests

You can email support@wavistaapp.com to ask what we hold about you, or to delete it. Send the email from Contact support in the app so it includes the anonymous ID; we cannot find your data without it, because we do not know your name. We reply within 30 days.

What we do not do

We do not sell your personal information or share it for advertising. We do not use face recognition or identify anyone in your photos: if a photo shows a person, the photo read only marks it as a photo Partcadabra does not use. The app has no ads and does not track you across other companies' apps or websites.

The app does not track you across other companies' apps or websites, so there is nothing for a Do Not Track signal to turn off, and the app does not respond to one.

Children

Partcadabra is not directed to children under 13, and we do not knowingly collect data from them. If you think a child has used the app, email us and we will help delete the data.

Where the law requires it, the app asks Apple for your age range. The answer stays on your iPhone, is used only to apply age protections, and is never sent to us or anyone else. If Apple says you are under 13, if you choose not to share your age range where it is required, or if iOS cannot tell the app at launch whether the law requires asking (for example with no Apple Account signed in, or no answer within 3 seconds) and the app has no earlier answer saved, the app turns off usage analytics, Apple Ads attribution (see RevenueCat above), and everything that sends what you make to our server: photo reads, design chats and case designs (all also go on to OpenAI), previews, builds and test slice answers. Your past parts, their files, your printer setup and your calibration stay on your iPhone and keep working, and you can still export a part file. The app also offers no subscription or part credit, because building would not be available. Restore purchases still works, and purchases made earlier are not changed. In the last case, these protections last until a launch where iOS can tell. If you chose not to share your age range where the law requires asking, a Share age range button, shown when a feature is not available, lets you ask Apple again.

Security and where data is processed

The app talks to our server and service providers over encrypted connections (HTTPS). Part files, preview pictures, design pictures and case designs are stored privately and can be opened only through a private link that expires after 24 hours. Our part builder has no public address, and it answers only requests that carry our secret key. Our server stores the anonymous ID only in scrambled form, except in the subscription and credit status record. Our server, its database, our part builder and our service providers process data in the United States. Part files, preview pictures, design pictures and case designs are kept in Cloudflare R2's Eastern North America region. Database backups are encrypted before upload and kept in Cloudflare R2's Eastern North America region.

Changes to this policy

If we change this policy, we will post the new version here with a new effective date. If a change affects how we use data you already gave us, we will tell you in the app first.

Contact

support@wavistaapp.com

Back to top