Effective date: October 9, 2026
MeshView ("the app") is an Android, iPhone and iPad app that opens and inspects 3D model files (.stl and .3mf) — dimensions, triangle count, volume, surface area, and (with the optional MeshView Pro unlock) Pro tools such as a two-point measure tool, a printability check, a wall-thickness map and cross-sections. This policy explains exactly what the app does and does not do with your information.
All parsing and rendering happen locally on your phone. The app does not upload, transmit, back up, or copy your model files, their geometry, or any embedded colour data to any server — ours or anyone else's. There is no account and no cloud storage (purchases use an anonymous ID — see “Purchases” below). Opening and viewing model files works fully offline.
The app reads a file only when you explicitly choose it through the Android file picker, or when you share a file into MeshView from another app (for example a file manager's "Open with" menu). It does not request broad storage access and cannot browse your device on its own.
The app collects a small amount of anonymous usage data through Aptabase, a privacy-focused analytics service, to understand which features are actually used and to guide future development. Aptabase is the only processor of this usage data; purchases are handled separately by RevenueCat (see “Purchases”).
Every event is a discrete, named occurrence with a small number of fixed-value properties. There are 23 events in total:
the app was opened
a file was opened, plus its format (STL or 3MF), how it arrived (picked, or shared in from another app), a coarse size band for its triangle count, and whether it carried embedded colour
a file failed to open, plus the general kind of failure (for example, unsupported format or corrupt file), the file's extension reduced to a fixed list of known labels (anything else is just "other"), how it arrived (picked, or shared in), and a general reason bucket from a fixed list (never the error text itself)
a shared/opened file was received, before MeshView attempts to read it (this shows how often the share-in path fails, separately from files opened successfully)
the model was rotated or zoomed for the first time on a given file
the model was panned, and whether that was via the on-screen pan buttons or a two-finger drag
the on-screen zoom buttons were used
a standard camera view (isometric, top, front, or one of the other standard views) was used
the view was reset to its default framing
a large model was simplified for smoother preview, plus its size band
the printability check was opened
the printability check finished, and which of three general verdicts it reached
measure mode was turned on or off
a measurement was completed (never the distance itself)
the model's display colour was changed, to which colour from a fixed palette
the About screen was opened
the cross-promotion link to MeshView's sibling app was tapped
a loaded 3MF had brush-painted colour regions the app can't display
an existing user was recognised and given MeshView Pro free (no properties)
a free user reached the monthly open limit, and which limit was in force (a number from a fixed, small set)
the Pro upgrade screen was shown, and which Pro feature triggered it
Pro was unlocked, and whether by purchase or restore, which feature, and which plan type (annual, lifetime, or unknown) — never any price or payment detail
a Pro tool was used, and which one, from a fixed list of tool names (for example wall thickness, cross-section, separate parts, display mode, or a unit choice) — never anything from the model
Along with each event, Aptabase records standard technical context: operating system version, device model, app version, country (derived from IP address, which is not stored), and a session identifier that rotates and is not tied to you.
What is never sent, under any event:
your model files, their geometry, or any file contents
file names, folder names, or file paths
exact triangle counts — only coarse size bands (for example "10k–50k triangles"), never the precise number
exact measured distances — only that a measurement happened
colour as a hex or RGB value — only the name of a colour from a fixed palette built into the app
your name, email address, or any account information (the app has no accounts)
advertising identifiers or persistent device identifiers
precise location
This data is anonymous and is not linked to your identity. It is transmitted over an encrypted connection (HTTPS) and is never sold and never shared for advertising; Aptabase acts only as our analytics processor. Sending this data is required to use the app — there is no in-app toggle to turn it off, short of denying the app network access at the operating-system level (see below).
MeshView Pro is optional and unlocks the Pro analysis tools (measure, printability check, wall thickness, cross-sections, separate parts, extra display modes and views, and unit choice), either as a yearly subscription or a one-time lifetime purchase. Purchases are processed by Google Play (Google Play Billing) on Android or the Apple App Store (in-app purchase) on iPhone and iPad, and entitlements are managed by RevenueCat, our purchase-management processor. Purchase data is only sent when you buy or restore a purchase, or when the app checks whether Pro is active.
What is processed: an anonymous app user ID generated for the app (not your name, email, Google account or Apple ID), and purchase history / transaction data (which product, when, and its status) supplied via Google Play or the App Store.
What MeshView never sees or stores: your payment details (card, bank, or Google Pay / Apple Pay data). Google Play or the App Store handles payment directly.
Existing users: if you opened a model in MeshView before version 1.1.5, you keep Pro features free. This is decided once, on your device, from a local counter that is never sent anywhere; only the anonymous pro_grandfathered event (see above) is recorded.
Your model files are still never uploaded.
RevenueCat's own handling of this data is described in its privacy policy: https://www.revenuecat.com/privacy
Units preference: if you choose millimetres, centimetres or inches, that choice is stored only on your device and is never sent anywhere (the separate analytics event above records only that a unit was chosen).
MeshView requests two Android permissions: Internet, used to send the anonymous analytics events described above, to communicate with RevenueCat for purchases, and to open an external browser link if you tap the cross-promotion for MeshView's sibling app; and com.android.vending.BILLING, used solely so Google Play can process a MeshView Pro purchase. Opening and viewing model files works fully offline. The app does not request storage permissions — it uses the Android file picker and share system, which only ever hands it the specific file you chose. On iPhone and iPad, MeshView requests no permissions at all: files reach it only through the Files picker, Share or Open With, which hand it the one file you chose.
The app is a general-purpose file utility and is not directed at children.
Because the analytics data is anonymous and carries no identifier tied to you, there is no per-user analytics record we can locate or delete on request. Aptabase retains aggregate event data under its own retention policy. Purchase records are different: RevenueCat holds an anonymous purchase record keyed to your app user ID, and Google (Play) or Apple (App Store) holds your purchase history. Because MeshView has no account, we cannot match that record to you from your name or email — to request deletion, write to the contact below from the device (or include your Google Play or App Store order number) and we will ask RevenueCat to delete the matching record, or you can contact RevenueCat directly. Uninstalling the app removes the local ID and counter from your device. If you prefer not to send any analytics at all, you can deny the app network access in your device settings — the app still opens and inspects files normally with no network connection — or uninstall the app, which removes all app data from your device.
If this policy changes materially, the updated version will be published at this same URL with a new effective date, and the app's Google Play Data safety declaration and App Store privacy details will be updated to match.
Questions about this policy: amantwd@gmail.com
This section mirrors the Play Console Data Safety form, so the two can be checked against each other directly:
Does the app collect or share user data? Collects, does not share
Data type: App activity → App interactions; Financial info → Purchase history
Purpose: Analytics (app interactions); App functionality (purchase history)
Is data shared with third parties? No — Aptabase and RevenueCat act as processors on our behalf
Is collection required or optional? Analytics: required — no in-app opt-out. Purchase history: optional — only if you buy or restore MeshView Pro
Is data encrypted in transit? Yes (HTTPS)
Can a user request deletion of their data? Analytics: no per-user deletion — anonymous, nothing to look up. Purchase record: on request via the contact above (RevenueCat anonymous ID)
Device or other IDs collected? No advertising or hardware identifiers; RevenueCat uses an anonymous app user ID
Files and photos collected? No — model files are parsed entirely on-device and never leave it
Personal info (name, email, etc.) collected? No
Payment details seen by MeshView? No — handled by Google Play or the App Store
Location collected? No