Privacy Policy
QtMesh Cloud — last updated 2026-08-03.
QtMesh Cloud is a service for analyzing, tracking, and sharing the quality of 3D assets, including an asset marketplace and background processing jobs. This policy explains what data we collect, why, who receives it, how long we keep it, and the controls you have — including when you use QtMesh Cloud through a connected application such as the ChatGPT connector.
Information we collect
- Account identity: when you sign in with GitHub, we store your GitHub ID, login, display name, email, and avatar URL. When you sign in with email and password, we store your email, display name, and a salted password hash.
- Project data: projects you create (name, slug, and the repository URL you associate with them), uploaded asset files, scan reports, findings (file path, rule, severity, message), quality-gate configuration, and scan metrics and ratings.
- Scan provenance: for scans ingested from CI, the branch name, commit SHA, run identifier, and pull-request number you submit with the scan.
- Marketplace data: listings you create (title, description, category, tags, license, files, preview image) and, when someone downloads a published listing, a download record linking the downloading account, the listing, the license in force at that moment, and the time — kept for licence auditability and the listing's public download counter.
- Processing jobs: when you (or an automatic trigger such as publishing a listing or uploading a project file) request analysis, thumbnail or sprite rendering, format conversion, LOD generation, or mesh optimization, we store the job request, its parameters, status, error information, and the produced artifacts (reports, images, converted models).
- Gamification and certificates: achievements, experience points, streaks, and feature-usage events reported by the QtMeshEditor application when you connect it; quality certificates we issue carry your display name and are reachable by their public verification code.
- Feedback and interest signups: messages you submit through the feedback form and plan-interest registrations (email).
- Authorization data: session tokens, personal API tokens you create, and, for connected apps, OAuth client registrations and access/refresh tokens — all stored only as hashes, with last-use timestamps for your audit.
- Operational logs: short-lived request logs for reliability and abuse prevention. We use no advertising or third-party analytics trackers.
How we use it
- To provide the service: authenticate you, store and display your projects, scans, listings, and jobs, evaluate quality gates, and issue certificates.
- To process the jobs you or automatic triggers request: your asset file is sent to a processing worker, analyzed or rendered with the QtMeshEditor engine, and the results are stored back to your account (see "Processing workers" below).
- To operate the marketplace: publish the listings you choose to publish, serve their files to signed-in users who download them, and keep the licence audit trail.
- To authorize connected applications you approve (e.g. ChatGPT) to read or make the limited changes you consent to, scoped to your own projects.
- We do not use your data to train machine-learning models, we do not sell it, and we do not use it for advertising.
Data accessed via connected applications (e.g. ChatGPT)
When you connect QtMesh Cloud to an assistant through our MCP connector and approve access, the assistant can call the following tools on your behalf, scoped to your own projects. Tool inputs are limited to project identifiers (owner and project slug), optional finding filters (severity, rule, file path, text, pagination), the quality-gate settings you dictate, and a public/private visibility flag. Each tool returns only the fields listed here:
- List projects (read) — for each project you are a member of: owner, project slug, name, your role, latest quality-gate status, score, and error/warning counts, and the last scan time.
- Get project (read) — a single project's owner, slug, name, repository URL, your role, creation time, public-report setting, and its latest scan status, score, asset counts (models, materials, textures, animations, skeletons), geometry/textures/ animation/performance ratings, and geometry totals (triangles, vertices, bones).
- Get latest scan report (read) — the report version, scan start/finish times, the scan summary (counts of scanned/passed/errors/warnings/infos), and, per asset, the file path, format, file size, mesh/triangle/vertex/bone/material/texture/ animation counts, whether it has a skeleton, and that asset's findings (rule, severity, message). Internal CI provenance is not exposed through this tool.
- List findings (read) — for the latest scan: each finding's file path, rule, severity, and message.
- Get quality gate (read) — the project's quality-gate configuration.
- Update quality gate (write) — updates your project's quality-gate configuration with the values you provide and re-evaluates the latest scan.
- Set public report (write) — enables or disables the public visibility of a project's report.
Connected applications never receive your password, session tokens, API tokens, OAuth tokens, GitHub identifiers, avatar, email, or any other account-identity data; they cannot access your marketplace download history, jobs, or uploaded file contents; and internal database identifiers are not returned. Write actions are limited to projects you own. Anything you or the tools place into an assistant conversation is thereafter also handled under that assistant provider's own privacy policy.
Who receives your data
- Infrastructure provider: Cloudflare (Workers, D1 database, R2 object storage) hosts the service and stores all data described above.
- Processing workers: jobs run on worker machines operated by QtMesh Cloud. Additionally, jobs on publicly published marketplace files only may run on GitHub-hosted CI runners (GitHub/Microsoft infrastructure); private project files are never processed there. Workers receive the asset file and job parameters, hold them only in temporary storage for the duration of the job, and delete them afterwards; results are stored back in Cloudflare storage.
- GitHub: used for sign-in (OAuth) if you choose it.
- Applications you connect: only after you authorize them, only the fields listed above, only within the scope you grant.
- Other users and the public: content you explicitly publish is public — published marketplace listings (title, description, files, preview, your display name, datasheets and validation results), public project reports, directory listings, certificates (by verification code), and your public profile page. Signed-in users who download your published listing files appear in your listing's aggregate download count; their identity is not shown to you or the public.
- We do not sell personal data and share nothing for advertising.
Data retention
- Account, project, listing, gamification, and certificate data: retained while your account is active; erased by account deletion (below).
- Job records and artifacts: retained while your account is active so you can re-download results; temporary copies on processing workers are deleted when each job finishes.
- Marketplace download records: retained for licence auditability while the listing and the downloading account exist; deleted with either.
- Tokens: OAuth authorization codes expire within minutes, connected-app access tokens within one hour, refresh tokens within 30 days; sessions last 30 days; personal API tokens live until their optional expiry or your revocation. Revoking any of these takes effect immediately.
- Feedback: retained until resolved and periodically pruned; anonymized if you delete your account.
- Operational logs: automatically discarded within days.
Your controls
- Export: download a machine-readable copy of your personal data (profile, projects, scans, findings, files metadata, connected apps) from Settings → Export data.
- Delete: permanently delete your account and all associated data from Settings → Delete account — profile, projects, uploaded assets, scans, findings, marketplace listings and their files, job records and artifacts, tokens, gamification data. Feedback and interest signups are anonymized.
- Granular controls: unpublish or delete listings, delete projects and files, cancel queued or running jobs, revoke personal API tokens (API & tokens), and disconnect connected apps (Settings → Connected apps) at any time, each taking effect immediately.
- You may also request access or deletion via the support contact below.
Questions, data access, or deletion requests? Email support@qtmesh.dev, or open an issue at github.com/fernandotonon/QtMeshEditor.