The journey

How OpenLucid gets built, step by step, including the wrong turns.

  1. 31 October 2026 · Done

    Day 0: a name and a skeleton

    • Open source (MIT), everything local, sound cues only, no medical claims.
    • The name: OpenLucid.
    • Four parts: backend (FastAPI), app (Flutter), web view (Vue), website (Hugo).
    • Checkpoint 00: the app and the server wave at each other.
    Read the full story
  2. 1 November 2026 · Connected

    Day 1: the headband on the table

    • The app works with any EEG source: the Muse first, Fake Moose for everyone without one.
    • The Muse S connects over Bluetooth on Windows; Windows pairing is not needed.
    • The first signal was chaos, and the headband was lying on the table.
    • Lesson: check the simplest explanation first.
    Read the full story
  3. 1 November 2026 · Solved: it was contact

    Day 1, part 2: what bad contact looks like

    • Our code was fine: every packet arrived and was decoded correctly.
    • A sensor that doesn’t touch skin acts as an antenna and catches the 50 Hz hum from the walls.
    • Our first explanation (the reference sensor) was wrong.
    • Dampening only the forehead fixed only the forehead: contact, not code.
    Read the full story
  4. 1 November 2026 · Built

    Day 1, part 3: can the headband see my eyes?

    • Contact score with a clear target: under 25 µV of wiggle is 100%.
    • Eye check: an 18-second guided test for blinks and left/right eye movements.
    • Tested with a Fake Moose that follows the prompts (passes) and one that ignores them (fails).
    Read the full story
  5. 1 November 2026 · Open problem

    Day 1, part 4: contact doesn't stay, and what research says about eyes

    • Contact faded within about 15 minutes as the skin dried.
    • The eye check now checks contact first and saves its recording.
    • Research: the gold standard for eye signals is EOG, with electrodes beside the eyes.
    Read the full story
  6. 1 November 2026 · Finding

    Day 1, part 5: blinks yes, left and right no

    • With good contact: blinks 3 of 3, left and right 0 of 4.
    • Two wrong assumptions in our own code, found in the saved recording and fixed.
    • A Muse S forehead barely sees sideways eye movements, so we need sensors beside the eyes.
    • Checkpoint 01 is tagged.
    Read the full story
  7. 1 November 2026 · Done

    Day 2: the Diary Keeper grows up

    • One backend, two ways to run it: SQLite on a laptop (nothing to install), PostgreSQL on a server (Docker).
    • Accounts with consent, secure sign-in, export and delete; every user sees only their own data.
    • Raw EEG goes into files, not into the database; the app can upload twice without creating duplicates.
    • Built by 13 AI agents in six phases; 14 review findings, each proven with a failing test and fixed; 381 tests pass.
    Read the full story