body{margin:0;font:16px/1.65 -apple-system,Segoe UI,Roboto,Arial,sans-serif; background:var(--mk-bg);color:var(--mk-text)} .wrap{max-width:760px;margin:0 auto;padding:28px 18px 80px} h1{font-size:1.7rem;margin:0 0 6px} h2{font-size:1.15rem;margin:26px 0 8px} .muted{color:var(--mk-text-muted)} .prov{color:var(--mk-text-muted);font-size:13px;margin:6px 0} .card{border:1px solid var(--mk-border);border-radius:12px;padding:16px 18px;margin:14px 0;background:var(--mk-panel)} fieldset{border:1px solid var(--mk-border);border-radius:10px;margin:14px 0;padding:12px 14px} legend{padding:0 6px;font-weight:700} .opt{display:flex;gap:9px;align-items:flex-start;padding:4px 0;cursor:pointer} .field{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:6px 0;flex-wrap:wrap} .field input,.field select{background:var(--mk-bg);color:var(--mk-text);border:1px solid var(--mk-border); border-radius:8px;padding:7px 10px;font:inherit;min-width:8ch} .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:5px 0} .rowlab{min-width:11ch;color:var(--mk-text-muted);font-size:13px} .vas{margin:10px 0} .vas input[type=range]{width:100%} .vasends{display:flex;justify-content:space-between;font-size:12px;color:var(--mk-text-muted)} button{padding:10px 18px;border:1px solid var(--mk-accent);background:var(--mk-accent);color:#1a1306; border-radius:10px;font-weight:800;cursor:pointer;font:inherit;font-weight:800} button.ghost{background:transparent;color:var(--mk-text);border-color:var(--mk-border)} button[disabled]{opacity:.45;cursor:not-allowed} a{color:var(--mk-accent)} .limits li{margin:8px 0} .limits b{display:block} .key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:.06em; background:var(--mk-bg);border:1px dashed var(--mk-border);border-radius:8px;padding:9px 11px; display:inline-block;word-break:break-all} table{width:100%;border-collapse:collapse;font-size:14px} td,th{border-bottom:1px solid var(--mk-border);padding:6px 4px;text-align:left} .consult{border:1px solid var(--mk-border);border-left:3px solid var(--mk-text-muted);border-radius:8px; padding:10px 14px;margin:0 0 18px;background:var(--mk-panel);font-size:14px} .consult p{margin:4px 0}

The form constants

What people actually see under flicker — and the reason the answer is the same for almost everybody.

Four shapes, many causes

Working in the 1920s, Heinrich Klüver noticed that the geometry people report is not personal. He grouped it into four recurring types, and the same four turn up under:

The geometry is stereotyped across people and across causes. That makes it a fact about the visual system rather than about the stimulus or about you.

Tunnels and funnels

cones, vessels, alleys

Often reported with a sense of motion inward or outward. The "tunnel" of near-death report is the same geometry, which is a fact about the visual system rather than about death.

Spirals

helices

Rotational, frequently with apparent expansion or contraction.

Lattices, gratings and honeycombs

chequerboards, filigree

The most commonly reported class under flicker. Hexagonal and grid arrangements dominate.

Cobwebs

webs, nets

Irregular radial networks; the least sharply distinguished of the four from the other three.

⭐ The light produces the geometry. You supply the meaning.

Flicker in roughly the alpha band, through closed eyelids, reliably produces vivid geometric visual phenomena in most people. This is not marginal and it is not a drug claim — Brion Gysin's Dreamachine (1959) is a cylinder with cut slots spinning in front of a bulb, and Leary knew it.

The figurative content — angels — is not produced by the lamp. The four form constants are what the stimulus reliably delivers; a person recognising an angel in a lattice is doing the recognising. Attributing that to the light is the step this library does not take.

This is the same rule as everywhere else here: an instrument produces a stimulus, and what it meant is yours. See who is authorised to say what is happening to you.

⚠️ Safety

⚠️ This is also the exact stimulus class the photosensitive-epilepsy gate exists for. See .local/TEMPLE_EXAMS_SAFETY_GATE.md and the refusals in chamber.mjs, which will not put a high-risk program in a strapped viewer at any consent setting, because during a seizure it cannot be removed.