Skip to content

Latest commit

 

History

840 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

DreamLayer

A memory layer for the real world. Your glasses see what you see. DreamLayer remembers it, understands it, and hands it back the instant you need it — privately, on your own hardware.

Try it right now, in your browser — no hardware, no install:

  • The simulator — the real renderer and the real behavior; ten seconds to your first card.
  • The Lens Builder — build something for the glasses in plain words, watch it run, share it as a link.
  • The gallery — what people have built, every entry running live, one tap to remix.

DreamLayer is the software stack for Brilliant Labs Halo smart glasses. It turns a heads-up display into an ambient second memory: it quietly keeps what matters — objects, people you were introduced to, promises you made, where you left things — and surfaces it as a glance-able card the moment it's useful. Everything runs on your own devices by default; the cloud is a switch you own, not a default you accept.

And the difference is checkable. Every closed platform asks you to trust it; DreamLayer's whole claim is auditable in this repository — capture is veil-gated in code you can grep, the Brain binds to localhost until you deliberately open it, the cloud is provably ciphertext-blind (docs/CLOUD.md), and user-programmed behaviors ship as statically-proven, signed data to a fixed on-glass interpreter, never as code (the Reality Compiler). "Your glasses can't betray you" is not a promise here; it's a property you can verify.


What it feels like

  • You glance at a snake plant. A soft card: "water every 2 weeks · last done Tuesday." You look at a wine label — its region, the price you paid last time.
  • Someone says "Hi, I'm Maya." One deliberate moment later, Maya is yours to recall next time. Only people who introduce themselves; never a stranger lookup.
  • You ask "where did I leave the bike?"north rack, 4th & Alder.
  • You promised Marcus the lease by Friday. As Friday nears, the promise drifts to the rim and starts to glow. You don't forget.
  • Mid-thought at the workbench, the doorbell rings. "Hold that thought." Back at the bench, the glasses hand you your own last sentence, verbatim, unfinished: "…the torque spike should show up when—" Your brain finishes it.
  • You read a menu in a language you don't speak. It reads back in yours.
  • Three weeks ago your father told the lake house story you never wanted to lose. At the kitchen doorway a soft gold glow asks: "What did Dad say about the ice?" — and you tell it, from memory. Months later the glasses offer to delete the recording. You know it now. You burn the tape.
  • One gesture and the glasses go fully deaf and blind — nothing seen, heard, or kept — until you lift it.

None of this is mind-reading. It's the ordinary loop of ask → see → anticipate, made instant.

Meet Juno

The voice of all of it is Juno — calm, brief, honest, and yours. Say "Hey Juno" and ask, teach ("call me Sam"), command ("go incognito"), stash ("I left my bike at the north rack"), or build ("set a timer, 30 on, 15 off, 8 rounds" — compiled into a signed on-glass behavior on the spot, no cloud, no Brain required). When Juno doesn't know, she says so; she never invents. What she learns about you fits on one phone screen, stays on your devices, and is yours to erase.

She has a face, too — the small winged figure on dreamlayer.app, in the app's welcome, and in the corner of the Mac panel. In keeping with this project's honesty rules: the character is brand art (an AI-produced clip), always decorative, never presented as something the glasses render.


How it's built

Four parts, each doing the thing it's best at:

  Halo glasses  ──BLE──▶  Phone (the hub)  ──LAN/internet──▶  Mac mini (the Brain)  ──opt-in──▶  Cloud
   the display            orchestrator,                        bigger local model +              frontier reach
   & sensors              memory, privacy gate,                your files & mail                 for the hardest,
                          the brain by default                 (runs on your LAN)                 non-personal asks

Intelligence lives at the lowest tier that can do the job. The phone names an object instantly and offline; a connected Mac mini explains it richly from your knowledge; the cloud is only ever reached for the rare, hard, non-personal question — and only if you turned it on. Nothing marked private ever leaves, in any configuration. Every tier runs under a measured latency budget (naming a glance gets 350 ms), and every answer is stamped with the tier it came from.

The three switches

The app and the Mac panel expose the brain as three independent switches — no confusing "mode." See docs/AI_BRAIN.md.

Switch What it does Default
Mac mini upgrades the local brain to a bigger model + your indexed files off — the phone is the brain
Cloud frontier reach for the hardest, non-personal asks off — opt-in
Incognito forces cloud off and pauses capture for the session off

Pairing the whole trio — phone + Brain + glasses — is one code, scanned or pasted once.


The six lenses

Everything DreamLayer does groups into six lenses — the whole product at a glance. The canonical grouping lives in code at host-python/src/dreamlayer/lenses.py; the full breakdown is in docs/LENSES.md.

Lens For Includes
Memory your life, remembered Dream Mode · Ghost Layer · Lucid Recall · REM · Yesterlight · Premonition · Waypath · Ember · Stasis
People who's around you Social Lens · Timbre · Name Capture
Truth what's true, and where beliefs come from Truth Lens · Candor · Provenance
World understand what you look at Juno (look → know) · Label Lens · Scholar · TasteLens · AI Brain · Rosetta
Life do, keep, and build Commitment Drift · Saga · Reality Compiler (Rehearsal + figments)
Together two wearers, one sky Confluence

(And a wider set rides alongside the registry — Retrace, Thread, Docent, Rosetta Live, Candor Mirror, the GhostMode mesh — all in the knowledge base.)

Two things run underneath all of them:

  • Privacy Veil — the spine. One gesture and the glasses go fully deaf and blind. Nothing seen, heard, or kept.
  • Atmosphere — the ambient light and feel: Inner Weather, the Prism Lens, and Palette Cycling.

Privacy — the contract

Privacy isn't a setting here; it's the architecture.

  • On-device by default. The phone is the brain; a Mac mini stays on your LAN (and binds to localhost until you deliberately expose it); the cloud is off until you explicitly opt in. Nothing marked private ever leaves, in any mode.
  • No stranger identification. The People lens only matches — and only remembers — people you were introduced to and chose to keep. No public database, no face lookup against the open world. "I've met them, remind me," never "identify this stranger."
  • Spoken, bounded name capture. A name is kept automatically — but only from a closed, offline grammar of self-introductions ("Hi, I'm Maya"), so only people who chose to give you their name are ever remembered. The Veil silences it like everything else, and "forget that" erases it.
  • Structured memory, never raw. Audio and video are never stored or transmitted — DreamLayer keeps meaning, not recordings. (The local index keeps embeddings of your own kept memories and contacts on your device; they expire on the retention lifecycle and die with "forget that.")
  • Erased means erased. "Forget that" evicts the vector, not just the row; a purge sweeps every recall-bearing store, including the phone's on-disk cache; Ember's burn ceremony deletes the recording and leaves only the cue. See docs/PRIVACY_MODEL.md.
  • One gate, honored everywhere. allow_capture() / the Privacy Veil is respected across every lens, and third-party plugins receive only the veil event while it's down.

Some capabilities are deliberately not built — stranger face lookup, voice cloning, covert recording.


The software you run today

All of it works before the glasses exist:

The phone app — the hub

Expo / React Native, seven tabs, localized in nine languages, with its own test suite. Pair your devices, ask your brain from your pocket, point the camera at anything (the Look tab), walk a route as a single dot of light (Waypath), and own your privacy from one screen. No hardware yet? Demo Mode fills every screen with labeled sample data, one tap to exit.

cd phone-app && npm install && npx expo start      # scan the QR with Expo Go

The Brain — the knowledge node

A menu-bar Mac app (a notarized .dmg on the releases page), a Windows system-tray app (an installer from the same releases), or one command from source, on any OS. It indexes the folders you choose, reads your Messages and Mail if you allow it (on Windows: Thunderbird mail and .ics calendars — the panel states honestly what each platform can read), serves a nine-view control panel, and answers questions from your own stuff. Keyword search works with zero setup; add Ollama — or any of seven cloud presets, strictly opt-in — for written answers and vision.

pip install -e ./host-python
python -m dreamlayer.ai_brain.server --token rune-birch     # open the printed URL

The simulators

The browser simulator is the front door; python -m dreamlayer.simulator is the workbench (the real orchestrator, ledger, and stage over a software glass); and python -m dreamlayer.simulator --watch my-lens/ is Glass Desk — a live glass on your desk that re-renders your plugin's card on every save.

Full walkthrough — install, run, and pair — in docs/TESTING.md.


Build on DreamLayer

Four doors in, shallowest first:

  1. Make a lens with no code — the Lens Builder: describe what you want, or start from a showcase, watch it run on a live ring, then deploy to your Brain in one click. A lens is data, not code — it ships with a machine-verified safety card ("This behavior CANNOT: ...") and a plain-words list of the host powers it asked for, and every device re-proves it before running it. Share one as a link or QR; remixing is one tap in the gallery; the competitive version is Figment Golf, where the server re-runs your entry and recomputes the score.
  2. Run the whole layer with no hardware — the simulators above, or pip install -e "host-python[dev]" and the test suite. The phone app's Demo Mode is the same idea on your handset.
  3. Write a plugin in ten minutes — the typed Python SDK + CLI: dreamlayer plugins new my-lens scaffolds one; validate / preview / dev --watch / pack carry it to the store, through the same five-defence gate the Brain runs, onto an isolation ladder (subprocess jail by default, OS sandbox and WASM above it). docs/SDK.md is the quickstart; examples/hello-lens/ is a complete, store-valid example that CI runs so it can't rot.
  4. Extend the engine — optional capabilities follow one seam pattern (docs/INTEGRATIONS.md); platform surfaces are in docs/PLATFORM.md; CONTRIBUTING.md has the ground rules (DCO, one green command, the privacy contract).

The plugin store lives at dreamlayer.app/plugins — six official plugins today, one ranked search shared by the web, the phone, and the API, and ratings served by a separate Worker (api.dreamlayer.app) that can never ship code.


Honest numbers

Host test suite 3,022 passing (plus the phone's Jest suite and the Worker's Node suites)
Bespoke on-glass card renderers 33, with a never-black fallback under every card
Figment interpreters in lockstep parity 4 — Python, device Lua, browser JS, Rust reality-core
Optional capabilities, honestly reported 42 (over 58 wired libraries), five one-click packs
Locales 9, with a build-failing catalog-parity gate
CI gates pytest + coverage floor, ruff + mypy, luacheck, DCO, pip-audit, cross-interpreter parity

Pre-hardware, and honest about it

DreamLayer is a pre-hardware build: every lens's logic is built and tested (the device rendering runs through the real Lua in a raster harness), but the physical seams — camera/mic/ASR, the on-NPU vision models, the BLE render+input transport, the coded-PHY mesh — are wired points, not live silicon. Features that need a second wearer or live glass render demo state until the transport attaches. The full seam matrix is in the knowledge base.

Repository map

dreamlayer/                one product, four runtimes and their world
├── halo-lua/              the Halo display client (Lua) — the eyes & the HUD
├── host-python/           the phone hub + the Mac Brain (Python)
│   ├── src/dreamlayer/    the engine: orchestrator, ai_brain, lenses, memory,
│   │                      reality_compiler, plugins, sdk, simulator, hud, bridge
│   └── packaging/         the double-click apps: macOS .dmg (py2app) +
│                          Windows installer (PyInstaller + Inno Setup)
├── reality-core/          the Rust figment interpreter core (native + WASM)
├── phone-app/             the mobile app (Expo / React Native, 7 tabs, Jest suite)
├── laptop-companion/      the minimal laptop context agent
├── examples/              hello-lens (the ten-minute plugin) + example figments
├── registry/              the plugin store catalog (git-backed, validated)
├── registry-api/          the social/community Worker (api.dreamlayer.app)
├── landing/               dreamlayer.app: simulator, lens builder, gallery,
│                          golf, plugin store, playground
├── web/                   the Vite/TS site rebuild + WebBLE playground
├── docs/                  design specs, ADRs, audits, testing
│   └── gitbook/           the knowledge base source (published below)
└── scripts/               demos, exporters, the Halo lab

The knowledge base — the complete reference with real renders of every card, screen, and panel: letsgettoworkbro.github.io/dreamlayer-docs (source: docs/gitbook/).

Architecture: docs/ARCHITECTURE.md · AI Brain: docs/AI_BRAIN.md · API & device seams: docs/INTEGRATION.md · Product spec: docs/PRODUCT_SPEC.md · Lenses: docs/LENSES.md

Contributors

All Contributors

DreamLayer is built in the open, and it's better for the people who give their time to it. Thanks goes to these wonderful people (emoji key):

aastha-m22
aastha-m22

🌍

This project follows the all-contributors specification. Contributions of any kind — code, translations, docs, bug reports — are welcome and recognized here.

License

DreamLayer is open source under the Apache License 2.0 — the whole repository, engine and lenses alike, with an explicit patent grant. The "DreamLayer" name and mark are reserved (see NOTICE); forks must use their own. Contributions are welcome under the DCO — start with CONTRIBUTING.md, and see docs/OPEN_SOURCE.md for governance and the project's open-source posture.


Built for Brilliant Labs Halo. Yours to run, yours to keep.

About

A private memory layer for Brilliant Labs Halo smart glasses — pre-hardware build

Resources

Code of conduct

Contributing

Security policy

Stars

7 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages