Privacy

Privacy Policy

Effective date: August 2026 · Last updated: September 2026

What Wrengler does

Wrengler runs ray-based studies (sunlight hours, view/visibility, solar radiation) entirely on your own machine. Your 3D model, geometry, and analysis results never leave your device. The web panel loads over the network, but the computation is local.

Account data

When you create a Wrengler account (via email/password or GitHub OAuth), Supabase stores your email address (for sign-in only), optional display name, and a bcrypt-hashed password. Account data is hosted on Supabase in Frankfurt, EU.

Telemetry

While signed in, Wrengler sends pseudonymous usage events: app launches, study starts and completions (with sensor counts, ray counts, wall time, and backend used), and authentication outcomes (method, not email). Before sign-in, app-open events are anonymous.

We never collect:

  • Your 3D model, geometry, or analysis results
  • File paths or document names
  • IP addresses (a salted hash is used for rate limiting only, then discarded)
  • Email addresses in telemetry
  • Browser fingerprints or device fingerprints
  • Tracking cookies

Raw telemetry rows are deleted after 90 days. Data is stored in the EU (Supabase Frankfurt).

Set WRENGLER_TELEMETRY=off to disable all telemetry and crash reports.

Project assistant

When you use the project assistant, your message and the project context needed to answer it (the project's facts and tags, relevant passages from its documents, the open Rhino scene summary, recent conversation and saved notes) are sent through the Vercel AI Gateway to a model provider (Google, Amazon or Anthropic), which may process them outside the EU, mainly in the United States. A small evaluation model (TypeSafe AI's Jev) first classifies each request to choose the model that answers it. The assistant proposes; nothing is written to your project until you confirm it.

Every assistant request, including any fallback, is routed only to providers that do not train on it: the gateway's no-training filter is set on every call, and a request that no such provider can serve fails instead of going elsewhere. Retention is each provider's own:

  • Vercel AI Gateway — trains on it: no. Keeps it: nothing; it is deleted once the request completes. Processed: United States (Vercel's primary facilities).
  • Google (Gemini, via Vertex AI or the Gemini API) — trains on it: no. Keeps it: Vertex AI caches in memory for up to 24 hours and may log prompts for abuse monitoring; the Gemini API logs prompts and responses for a limited period for abuse detection. Processed: not guaranteed; the Gemini API may store or cache data in any country where Google has facilities.
  • Amazon (Nova, via Amazon Bedrock) — trains on it: no. Keeps it: not stored by default, and not shared with the model's maker. Processed: the AWS region the gateway uses, which is not published.
  • Anthropic (Claude) — trains on it: no. Keeps it: when Anthropic serves it, deleted within 30 days, or up to 2 years if flagged for a usage-policy violation. Processed: not published.
  • TypeSafe AI (Jev) — trains on it: no. Keeps it: no fixed period; as long as reasonably necessary to provide its service or for its business purposes. Processed: United States.

We do not have a contract with the model providers directly; they are engaged through the Vercel AI Gateway under Vercel's agreements with them. Our contract with Vercel includes its Data Processing Addendum, which covers the personal data Vercel processes for us, including transfers outside the EU under the EU Standard Contractual Clauses, and flows its obligations down to its sub-processors. With our production plan, assistant calls can also be restricted to providers that keep nothing once the request completes (zero data retention).

Conversations and assistant run logs (timings, token counts, model names) are stored in the EU (Supabase Frankfurt), visible only to you and your project's leads. Run logs are deleted after 30 days; conversations are deleted with the project or your account.

Error reporting

Sentry is opt-in for the Rhino plug-in (requires WRENGLER_SENTRY_DSN). When enabled, it sends exception type names and method names from stack frames — never exception messages, file paths, or your geometry. The platform website uses Sentry with PII scrubbing enabled.

Local data

Wrengler stores an encrypted session file and a device identifier on your machine. These are deleted when you sign out or uninstall.

Billing

Wrengler uses Polar as the merchant of record for subscriptions. Polar processes payments and handles tax compliance. We do not store credit card numbers.

Your rights

  • Export your data — request a full export from your account settings, including your assistant conversations (your messages, the answers to them, your decisions on proposals, and the run records of your turns).
  • Delete your account — irreversible; removes all projects, analyses, files, and telemetry attribution.
  • Manage devices — view and remove devices from settings.

Contact

For privacy questions, open an issue at github.com/aashkann/wrengler.