Privacy

No accounts, advertising, or cross-site tracking. Here is the finite data this site uses.

No accounts or cookies

There is no sign-up or login, the site sets no cookies, and the application does not ask for identifying details. Device-local preferences and the learning progress described below are not an account and are not used to link activity across browsers or devices.

Learner work stays local unless you share it

The simulator, the C-to-LC-3 compiler, and every Control Lab candidate run entirely client-side. Learner work is not uploaded by the application: program source, assembly, files you open, candidate control words, typed console input, answers, machine addresses, and register or memory values are not sent to an application server or analytics.

A share link you deliberately copy contains compressed learner work in its URL fragment so that the recipient can reconstruct the shared program or moment. Anyone you send that link to receives that content. The fragment is not part of the normal web request, and both query and fragment are removed before every analytics event.

Learning progress stays on this device

To offer Resume for one four-step learning path, this browser may keep only these four fixed learning slugs: activity:follow-one-instruction, predict:operate-add, diagnose:add-missing-register-load, and construct:add-result. For each one, it can record whether it was Started and whether it eventually reached a successful completion. It can also keep which of those four path items was opened most recently, plus a local revision number interpreted only with the current synchronization fence. It normally advances when a saved fact changes so browser tabs and fallback state can reconcile their ordering. The revision is not a timestamp or an attempt count. This progress stays in this browser on this device; private browsing or clearing site data may remove it.

Learning progress stores no identity, program or exercise source, answers, individual attempts, answer content, score, elapsed time, or timestamps. The saved progress record — including its Started and completion sets, last item, revision, and synchronization fence — is not attached to share links, is neither read nor transmitted by analytics, and is not used for grading. Separately, the fixed feature-usage events described below can report when guided activities start or complete and the fixed results of Control Lab checks; those events are emitted by the feature itself, not copied from this saved record.

Reset learning progress removes every Started, completion, and last-item fact. After Reset, the browser retains an empty version-and-path envelope, a revision number for the new synchronization epoch, and a newly random synchronization fence. The fence prevents delayed work in another tab from restoring reset facts; neither the revision nor the fence is sent anywhere or used as identity.

What is measured

Vercel is our hosting and analytics service provider. To serve a page, the hosting layer receives the requested URL — including its path and any query — and ordinary network request metadata such as an IP address and user agent. A URL fragment is never part of that HTTP request.

When analytics is enabled, Vercel records aggregate page views and feature-usage counts without cookies. The URL attached to each analytics event contains only the page's origin and path; its query and fragment are removed. This site also sends a no-referrer policy, so the browser omits the current Past the Magic page URL from the analytics request's HTTP Referer header and from other outgoing requests.

Vercel may store an event timestamp, event path, and the browser-reported referring page URL. If you arrived from an external page, that referrer may include the prior page's origin, path, and query according to the referring site's policy; browser fragments are not included in referrers. Vercel may also derive coarse location, browser, operating system, and device class from the request. It identifies a daily visitor using a request-derived hash whose session is discarded after 24 hours; the hash is not used to follow a visitor across days or websites. Vercel describes this processing in its Web Analytics privacy documentation.

Feature usage is recorded as one of a fixed set of event names — for example, "assembled a program", "ran a program", "opened the datapath view", "moved to another view", "created a share link", "started a guided activity", "completed a guided activity", "left a guided activity", and — in the Control Lab — "committed a prediction", "checked a diagnosis", or "checked a construction". The activity lifecycle pair covers each named walk, including the Circuit LDR walk; it does not report its step, region, selected component, or camera. Most events are just that name. The two prediction events also carry two short labels drawn from fixed lists: which instruction class you were predicting (such as "operate" or "load-store") and whether the prediction was correct, showed one of a fixed set of misconceptions, or was wrong in no named way ("unclassified"). A diagnosis or construction check carries only its fixed exercise slug and one fixed result: "pass", "invalid-word", "behavior-mismatch", "forbidden-write", or "budget-exhausted". None of these events carry program or exercise source, candidate words, filenames, addresses, register or memory values, or any other text you typed.

Do Not Track is respected

If your browser sends a Do Not Track signal, this site sends no page views and no feature events for that visit — not a reduced set, none at all.

No third-party trackers

No advertising networks, cross-site tracking pixels, or client fingerprinting scripts. Vercel is the hosting and analytics provider described above, not an advertising network.