The six lenses and the wider set
Everything DreamLayer does groups into six lenses — the product's mental
model, kept in code as a registry (host-python/src/dreamlayer/lenses.py,
with all_features, find_feature, and lens_of so the taxonomy is
queryable). Two things run underneath all of them: the Privacy Veil (the
spine) and Atmosphere (the ambient light: Inner Weather, the Prism Lens,
Palette Cycling).
| Lens | For | Features |
|---|---|---|
| Memory | your life, remembered | Dream Mode, Ghost Layer, Lucid Recall, REM, Yesterlight, Premonition, Waypath |
| People | who is around you | Social Lens, Timbre, Name Capture |
| Truth | what is true and where beliefs come from | Truth Lens, Candor, Provenance |
| World | understand what you look at | Oracle (look-to-know), Label Lens, AI Brain, Rosetta, Puente |
| Life | do, keep, and build | Commitment Drift, Saga, Reality Compiler |
| Together | two wearers, one sky | Confluence |
The core lenses have their own chapters (Oracle,
Perception and memory, Truth,
Saga, Privacy). This chapter covers the rest
of the set — each fully wired into the orchestrator, each with a design spec
under docs/.
Dream Mode and the night
Dream Mode (dream_mode/, spec docs/DREAM_MODE.md) is the double-tap
world: the display steps through a starfield door and becomes an instrument
rather than an assistant. While dreaming, camera and IMU frames feed the
engine (on_scene_frame), the microphone FFT feeds it (on_audio_frame),
and two card families render through the dedicated dream path on the device:
- Ghost Layer — world-anchored memory echoes. Stand where a memory lives and a pale WorldAnchorCard wakes, character by character.
- Synesthesia — a poetic six-word read of what the senses feel like, with a dominant color and a gestural sprite.

REM (rem/, spec docs/REM.md) is the sleep cycle:
maybe_dream_tonight(charging) runs consolidation when the glasses charge at
night, gated by NightWatch. It dreams over the day's memories,
consolidates, produces a morning reel, and — the durable part — writes a
RetrievalBias the Horizon reads: what the night decided matters is
slightly brighter the next day.
Yesterlight (docs/YESTERLIGHT.md) folds yesterday's light back into
today's ring; Premonition (docs/PREMONITION.md) is the forward twin — a
RecurrenceModel sweeps for events that usually happen about now and
ghosts them onto the Horizon as breathing-dim dots (never brighter than the
real), hardening the model when a predicted event lands.
Atmosphere
- Inner Weather (
docs/INNER_WEATHER.md) — your own climate, made visible: dream-sky weather driven by your day's texture, rendered through the dynamic palette slots.

| A quiet dream sky (device Lua) | An anchor echo in weather (device Lua) |
|---|---|
![]() |
![]() |
- Prism Lens (
docs/PRISM_LENS.md) — the kaleidoscope, rebuilt in Lumen with spring bloom, breathing rotation, and counter-rotating halo rings, inside strict photosensitivity caps. - Palette Cycle (
docs/PALETTE_CYCLE.md) — slow ambient color flows through the leased slots (display/palette_cycle.lua).
World — look at anything
- Object Lens / Oracle-look (
object_lens/, specsdocs/OBJECT_LENS.md) —look_at_object(frame, facet=None|"own"|"ai"|"shop")builds a contextual panel for the thing in view. Providers plug in per domain (an AI provider backed by the tiered brain, a label provider, Rosetta for text); integration seams exist for a laptop, a car, a plant. The lens never identifies people —PERSON_LABELSenforcement keeps humans in the Social Lens's consented domain. - Rosetta (
rosetta.py) is the eye: text you look at — a menu, a sign — OCR'd and translated (translate_seen(text, target)). Puente (orchestrator/puente_bridge.py) is the ear: real-time speech translation into LiveCaptionCards. Complementary by design; they share card styling, not pipelines. Seams: OCR, the translation model, and the microphone. - Waypath (
find_way(subject, heading_deg)) — point-me-to-my-things: a bearing card from your heading to where the remembered object lives.
Truth's siblings
- Candor (
check_consistency(claim), specdocs/COMMITMENT_DRIFT.mdneighborhood) — the on-device self-consistency check: does this claim contradict what you have said and kept? Emits a ConsistencyCard; never touches the network. Veritas reuses itscontradictspredicate for the speaker-against-themselves pass. - Provenance Lens (
trace_provenance(claim),docs/PROVENANCE_LENS.md) — where did this belief come from? Traces a claim to its origins and standing in your own record; pairs with theAnswer.sourcesattribution that every brain answer carries.
Life — building and keeping
- Commitment Drift (
docs/COMMITMENT_DRIFT.md) — promises as physics: states run blooming, healthy, drifting, cracking, shattered;nudge_commitment/keep_commitment/break_commitmentmove them;tick_driftraises the drift card as decay grows. The Horizon draws the arc; a broken promise shatters exactly once.

- Reality Compiler v2 (
reality_compiler/, specsdocs/rc_v2/) — the build-a-skill path: Rehearsal compiles a described procedure ("three rounds of two minutes, bell between") into a signed Figment — a budget-verified little program that runs on the glass stage with the button driving it.build_skill(name, text)is the orchestrator surface; the wire protocol has first-class figment put/swap/revoke/ack messages, and the phone's Rehearsal screen mirrors the score-and-repertoire model. The five recorded sessions underout/rc_v2/(round timer, rolling rounds, spar night, a refused strobe — the safety path — and hot-swap revoke) are its executable spec, alongsidedocs/rc_v2/echo.md,loom.md, andrehearsal.md.
Together — Confluence
Confluence (confluence/, spec docs/CONFLUENCE.md) is two wearers, one
sky: a consented bond entangles two Horizons; togetherness drifts and
settles as you move through the day apart or together. TinCan sends a
single tap down the wire as a gentle ping; weather gifts let one wearer
send the other a sky. The orchestrator surface is
attach_confluence(bonds, sky) / receive_confluence(wire) /
outgoing_weather(), with a tap collector feeding single-clicks while
dreaming. Timbre (docs/TIMBRE.md, People lens) gives known voices their
own audio texture. The phone's Confluence screen presents the bond
lifecycle; live two-device streaming is the pre-hardware seam.
Lucid Recall — the query router
lucid_recall/router.py is the ask-and-receive front door: it classifies a
query (face keywords route to the Social Lens; fact keywords to the memory
index and the tiered brain) and returns one HUD card. The AI knowledge tier
folds into it — "ask about your own stuff" is Lucid Recall extended from
memory to your files and mail.

