Build With AI: Basics · Devpost Learn

Say your list in the dark. Your room lights up.

Photograph your room and paste a list you must learn in order. Loci puts each item on a real object along one route of up to 12 stops, with a strange little scene for each. Then the lights go out. Say or type the list back: code, not an AI, checks every answer, and each right one turns its stop green.

  • One photo
  • Up to 12 stops
  • Code checks every answer
  • Your photo isn't stored
AI-generated example room. The stops, the route and the pools of light are the real example palace's.
  1. 1yellow raincoat
  2. 2blue bed
  3. 3orange cat plush
  4. 4wall clock
  5. 5cork board
  6. 6yellow desk lamp
  7. 7black backpack
  8. 8striped rug
  9. 9snake plant
  10. 10red kettle
  11. 11acoustic guitar
  12. 12globe

12

stops from one photo

shared/list.ts

102

unit tests

tests/ · npm test

29

browser checks, plus 7 with the real AI

e2e/ · npm run e2e

never AI

checks your answers

shared/score.ts

Stop 1 · The walk

The real app, from the first stop to every light on.

The one-tap example: twelve cranial nerves in a student room. A short walk with the lights on, then lights out and the list typed back, one stop at a time.

loci.edycu.dev
Recorded from the v0.1.0 production build by scripts/record-demo.mjs. The answers are typed by the script, not remembered by a person; one has a typo, one is an accepted answer.

The answer checker, on real answers shared/score.ts

  1. typed occulomotor → Oculomotor

    Right. One slip in a long word.

  2. typed trochlaer → Trochlear

    Right. Two letters swapped count as one.

  3. typed auditory → Vestibulocochlear

    Right. Your list accepts it after “ / ”.

  4. typed 1. Optic → Optic

    Right. Numbering is ignored.

  5. typed Vitamin D → Vitamin C

    Wrong. Short words must be exact.

  6. said truck lear → Trochlear

    Right. It sounds alike: both are trklr.

Each line is what the real checker answered, run on these inputs (isRight for typing, spokenMatch for speech).

Stop 2 · Lights out

Learn with the lights on. Recall in the dark.

Three real screens from the same palace. Code never shows you the answer while you recall; a miss stays dark until you retry it.

  1. Learn: the student room lit, the view walked to stop 4, the wall clock.

    Learn

    The view walks the route, one scene per stop. Stop 4, the wall clock: Your wall clock turns into a little truck-lear, honking ‘Trochlear!’ as it circles the room.

  2. Lights out: the room dark, five stops green with five pools of the photo back, stop 6 asked.

    Lights out

    The room goes dark. Say or type each item. Five right so far, so five pools of the room are back.

  3. Every light on: all twelve stops green and the whole room lit again.

    Every light on

    When every stop is green, the whole room comes back. The result shows the first-try score and both times.

Stop 3 · Who decides

The AI proposes. Code decides.

Two AI calls suggest objects and scenes. Plain code picks the stops, draws the route and checks every answer, so the score means what it says.

Code

Checks every answer

Plain code, never an AI. It forgives slips in long words, keeps short words exact, and takes your own accepted answers after “ / ”.

  • Na2 lettersexact
  • Optic5 letters1 slip
  • Oculomotor10 letters2 slips
  • Vitamin C7 + 1 letters1, then exact

shared/score.ts · edit distance per word

AI

Finds real objects

Your photo is shrunk to 1280 px on your device, then a vision model names objects and boxes each one.

api/anchors.ts · Gemini, DeepSeek last

Code

Draws one route

It keeps distinct, uncrowded objects and finds the shortest route from the leftmost stop to the rightmost.

shared/route.ts · Held-Karp, exact

AI

Writes a strange scene

From object names only, never the photo, with a sound-alike for hard words.

api/scenes.ts · deepseek-flash

Code

Hears you, eyes closed

In Chrome or Edge, say the list. The same checker reads what the browser heard.

Web Speech API · shared/voice.ts

Device

Stays on your device

Palaces and results live in your browser. The server never stores your photo.

IndexedDB · idb-keyval

Stop 4 · The scenes

Twelve stops, twelve strange scenes.

The example palace in full, word for word. Strange is the point: an odd picture on a thing you see every day is hard to forget.

  1. 1

    yellow raincoat

    Olfactory sounds like old factory

    Your yellow raincoat turns into an old factory, puffing perfume and humming 'Olfactory!'

  2. 2

    blue bed

    Optic sounds like op-tick

    Your blue bed becomes an op-tick, ticking like a giant eye and chirping 'Optic!'

  3. 3

    orange cat plush

    Oculomotor sounds like a cool motor

    Your orange cat plush grows a cool motor, rolling its eyes and purring 'Oculomotor!'

  4. 4

    wall clock

    Trochlear sounds like truck-lear

    Your wall clock turns into a little truck-lear, honking 'Trochlear!' as it circles the room.

  5. 5

    cork board

    Trigeminal sounds like try-gem-in-all

    Your cork board pushes out three gems, chanting 'Trigeminal!' like a try-gem-in-all choir.

  6. 6

    yellow desk lamp

    Abducens sounds like ab-duck-ins

    Your yellow desk lamp sprouts ducklings that do sit-ups, quacking 'Abducens!'

  7. 7

    black backpack

    Facial

    Your black backpack grows a grinning face, stretching its cheeks and laughing 'Facial!'

  8. 8

    striped rug

    Vestibulocochlear sounds like vestibule-oh-cock-leer

    Your striped rug rolls into a vestibule, where a bull and a rooster leer, blaring 'Vestibulocochlear!'

  9. 9

    snake plant

    Glossopharyngeal sounds like glossy pharaoh in jail

    Your snake plant polishes a glossy pharaoh, who gargles 'Glossopharyngeal!' from a tiny jail.

  10. 10

    red kettle

    Vagus sounds like vague us

    Your red kettle whistles vaguely, steaming the words 'Vagus!' at you.

  11. 11

    acoustic guitar

    Accessory

    Your acoustic guitar sprouts extra strings, wearing rings and scarves as it strums 'Accessory!'

  12. 12

    globe

    Hypoglossal sounds like hippo-glossal

    Your globe spins into a hippo with a glossy tongue, licking continents and roaring 'Hypoglossal!'

Objects found by gemini-3.1-flash-lite and scenes written by deepseek-flash, prepared in advance on 2026-10-04. The room is AI-generated.

Stop 5 · Honest by design

What Loci doesn't claim.

Lifted word for word from the plan and the README.

Stop 6 · Questions

Questions a judge would ask.

Does an AI decide if I'm right?

No. AI finds the objects and writes the scenes. A small checker in shared/score.ts decides green or red. “Vitamin D” never counts for “Vitamin C”.

Where does my room photo go?

It is shrunk on your device, then sent once to Gemini (or DeepSeek if Gemini is busy) to find objects. The server does not store it. Scenes are written from object names only.

What is prepared in advance?

The one-tap example, 12 cranial nerves in an AI-generated student room, was built ahead of time by the same helpers, so it opens with no AI call. Your own photo goes through the real AI; building usually takes 10–30 seconds.

Does voice work everywhere?

In Chrome and Edge, through the browser's own speech recognition. Everywhere else you type, and typing always works.

What lists work?

3 to 12 items, in order, 4 words or fewer each. Add other accepted answers after “ / ”, like Sodium / Na.

Will I still remember it next week?

Loci doesn't claim that. It shows recall in one sitting: the first-try score, the learning time and the recall time. Walk your saved palace again before the exam.

Your room is the memory palace.

Try the 12 cranial nerves in one tap, or bring your own room and your own list.

The example room with every light back on: all twelve stops green.