Skip to main content
Auric Artisan · Documentation

Perception & Vision User Guide

Use Auric Artisan Perception & Vision to preview how images, UI, brand colors and camera scenes may appear under simulated visual conditions.

Published: May 24, 2026 Updated: May 24, 2026 Category: Guide Author: Chirag Bansal
Back to Documentation Auric Artisan Home

Overview

Perception & Vision runs eight simulations of how a scene reaches a different visual system over an image, a test card, a Snellen chart or your camera: colour vision deficiency, scotopic and mesopic vision, lens yellowing, cataract, central loss, light adaptation and acuity. It is an educational approximation. It is not a clinical instrument, and the page says which of its numbers come from a published table and which are this tool's own.

Table of contents

  1. 1. Open the Lab
  2. 2. Sources
  3. 3. The eight simulations
  4. 4. Controls
  5. 5. The readouts
  6. 6. Presets and exports
  7. 7. A list of colours
  8. 8. Library saves
  9. 9. Workflows
  10. 10. What this tool does not hold

1. Open the Lab

+
  • Tool URL: open Perception Vision.
  • Default state: the built-in test card, colour vision at protanopia, severity 1.00, split view, D65 — that is, the scene as authored — and the GPU renderer.
  • Six tabs: Lab is the workbench. Simulation shows where a colour goes on its way through the projection. Modes shows every entry over the same source. Data is the register of what each figure rests on. Export takes a list of colours, the frame, the settings or a link. Reference holds the standards, the formulas, the citations and the research notes.
  • Processing: everything runs on your machine. Without WebGL2 the page runs the same simulations on the CPU and says so — it used to show nothing at all.

2. Sources

+
Source Use
Test card Eight colour patches, a nine-step grey ramp and three single-channel ramps. The grey ramp is the test that needs no reference: a colour-vision simulation that tints it is wrong, and you can see that without consulting anything.
Grey ramp only The same nine steps, full frame, for reading the drift figures at a glance.
Snellen chart Rows from 20/200 to 20/20, so the acuity mode has something to be judged on.
Uploaded image A local file — a design, a screenshot, a photograph.
Camera Live frames from a camera you allow.

Nothing is uploaded. Files and camera frames are decoded into a local canvas and handed to your own GPU, and nothing leaves the page until you press an export button.

3. The eight simulations

+
Mode What it does, and what it rests on
None The source, unchanged. A real entry in the list and not a simulation — the hero used to count it and claim nine.
Colour vision Protan, deutan or tritan, through the Viénot, Brettel & Mollon 1999 projection in LMS. Severity blends between no loss and full dichromacy, which is a convention of this tool rather than a model of anomalous trichromacy.
Scotopic Rod-only vision: colour collapsed to a single rod signal, darkened and blue-shifted. The three weights are this tool's own and are not V′(λ).
Mesopic A crossfade between the rod image and the source, driven by the adaptation level. Not the CIE mesopic system.
Lens yellowing A blue-absorbing gain that grows with observer age from 20 to 80. Right in direction; the constants are this tool's own.
Cataract Forward scatter as a small blur, plus a yellow cast and a contrast lift.
Central loss A soft-edged disc of reduced luminance at the centre of the frame. Named for what it draws, not for a disease.
Light adaptation Gain and desaturation against an adaptation level.
Acuity A defocus sized from a Snellen denominator, 20/20 to 20/200. The mapping is this tool's own and carries no viewing distance.

The CSF overlay that used to be on this list is gone. It multiplied the image by the Mannos-Sakrison contrast sensitivity curve and handed that curve the pixel's distance from the centre where it takes spatial frequency, so at its own defaults it returned a black frame. The Modes tab shows what it did and says what a real one would take.

4. Controls

+
  • Severity: 0 leaves the source alone, 1.00 is full dichromacy. In between it is a linear blend toward it — a convention of this tool, not a model of anomalous trichromacy.
  • Type: protan, deutan or tritan. Daltonise pushes what the projection lost back into the channels that survive, instead of simulating the loss.
  • Adaptation level: where the mesopic crossfade and the light-adaptation gain sit.
  • Age: 20 to 80, for lens yellowing.
  • Scotoma radius: the size of the central-loss disc.
  • Cataract: scatter, yellowing and contrast-loss strength together.
  • Acuity: the denominator of a Snellen fraction, 20/20 to 20/200.
  • Compare: split, simulated only, or difference. Both halves of a split get the same adjustments, so the only thing that differs across the divider is the simulation. Drag on the image to move the divider.
  • Renderer: GPU or CPU. The same maths either way — the colour transform composes into one matrix that both use — and the Lab checks the two against each other after every change.
  • Before the eye: the illuminant, D65, D50 or A, with a strength. Bradford adaptation is applied to the stimulus before the visual system, because that is the order light arrives in. Under illuminant A the scene leaves sRGB by a wide margin; that is the correct answer and the readout says how much.
  • Adjustments: contrast, gamma, blur, glare and noise. These are not simulations and the page does not count them as ones.

5. The readouts

+
  • The grey ramp: nine steps with the channel spread the running simulation introduces into each, in 8-bit code values. Under colour vision it has to be zero all the way along, because a dichromacy projection collapses one hue axis and leaves the achromatic one alone. Under scotopic a non-zero row is the effect, not a defect, and the note under the strip says which case you are in.
  • Neutral drift: the worst of those nine figures.
  • Colours merged: how many of the frame's own distinct colours the simulation brought to the same place. This is the thing a colour-vision simulation is for.
  • Out of sRGB: how much of the frame the projection pushed outside the gamut, rather than letting the clamp hide it.
  • GPU and CPU agree: the two renderers are run over a grid of 216 colours and compared. It reads n/a — spatial for a mode that reads its neighbours or its position, because a strip of flat colours cannot check one.
  • Frame luminance: mean, minimum and maximum of what is on screen.
  • Enlarge: double-click the viewport.

6. Presets and exports

+
Action Result
Presets Protanopia, mild deuteranomaly, tritanopia, low light with glare, lens at 70, cataract, central loss and acuity 20/80. Every value a preset sets reaches something that draws.
Save the frame perception-[mode]-[severity].png, with whatever the overlay drew.
Download the CSV The colour list with its simulated hex, LMS, opponent channels, ΔE00 and whether the encode clamped — under a comment header naming the chain, the matrix, the illuminant, the renderer, whether the two renderers agreed, and that this is not a clinical measurement.
Download the settings The same provenance as JSON. Load settings reads it back.
Copy a link to this view A URL carrying the simulation, the type, the severity, the adjustments, the illuminant, the comparison, the source and the renderer.
Reset Back to the test card, protanopia at 1.00, split view and D65.

7. A list of colours

+

The Export tab takes hex colours, one per line, and runs each through the simulation the viewport is showing — the same code, not a second one that drifted from it. The table gives the simulated hex, the LMS cone responses, ΔE00 against the input, and whether the result stayed inside sRGB.

Put a grey in any list you check. It is the row that catches a simulation tinting neutrals: a dichromacy projection has to leave it exactly where it was, at ΔE 0.0.

8. Library saves

+

Library registers Perception & Vision as a Perception tool with preset capture. When a canvas is present, the first tool canvas is stored as a perception snapshot. The shared runtime hook reads window.AAPerceptionVision.getState() and restores through window.AAPerceptionVision.restoreState(saved).

Use Library saves for repeatable accessibility review cases, UI audit snapshots, design-system comparisons and teaching demos.

9. Workflows

+
  • Accessibility review: upload a screenshot, run protan, deutan and tritan at severity 1.00, watch colours merged, and export the CSV for the palette.
  • Palette check: paste your brand hexes into the Export tab with a grey among them and read the ΔE00 column — two rows that arrive at the same hex are two colours your reader cannot tell apart.
  • Low-light check: scotopic or mesopic, lower the contrast, add a little glare, and compare in split view.
  • Ageing review: lens at 70 and cataract, to test blue-dependent labels and low-contrast affordances.
  • Acuity check: the Snellen chart as the source, then walk the acuity slider from 20/20 to 20/200.

10. What this tool does not hold

+
  • This is an educational and design-review simulator, not a clinical diagnostic tool. Nothing it prints is a measurement of anybody's vision.
  • The dichromacy matrices are the published Viénot 1999 values and are not individualised to an observer. Severity between 0 and 1 is a blend, not a model of anomalous trichromacy; Machado 2009 is what that would take.
  • The rod weighting is this tool's own and is not V′(λ). No scotopic luminance is reported from it.
  • The lens, cataract, acuity and light-adaptation models carry this tool's own constants. They show that an effect exists; they carry no clinical meaning.
  • There is no contrast sensitivity function here. The mode that claimed one was withdrawn, and nothing on the page may be reported as a contrast-sensitivity result.
  • Camera access depends on browser permission and a secure context. WebGL2 depends on the device; without it the page runs the same simulations on the CPU.
  • Uploaded image content is session-local; Library restores settings, not file bytes.

The Data tab carries all of this as a register, entry by entry, with a status of verbatim, computed, stand-in or absent, and says what each absent entry would take. For architecture and implementation details, see the Perception Vision Developer Reference.