Inspiration

Family photographs often sit in an archive long after the stories around them have become hard to find. A garden picture might matter because of who planted it, who visited, and what happened that summer. We imagined a living-room frame that helps an invited visitor rediscover those connections while the family decides which photographs that person may see. FAMILIAR MEMORIES puts the family's captions at the center of that encounter.

What it does

The experience begins with a ring and a locked frame. A keeper confirms who is visiting and that this person wants to see memories. The frame selects photographs approved for that visitor and arranges a story around relationships, places, milestones, and chronology. Each photograph keeps its caption, known date, and a reason for appearing. The visitor can follow a thread, choose a chapter, pause for conversation, and request browser narration. If the keeper suppresses a photograph, withdraws sharing, or closes the visit, the local story responds immediately. In the fictional demo, Walt has four approved photographs and Ellie has one.

How we built it

We built the browser experience around a JavaScript engine for visits, permissions, and story selection. The keeper adds original files and records the people, relationships, places, milestones, and date precision actually known. Permission filtering happens before the curator ranks photographs, and the same gate applies through threads and chapters. IndexedDB stores the local archive, which opens locked on return. A portable archive carries original files and metadata. Browser speech synthesis can read caption-based text and stops earlier narration when the story changes. A local MCP server and simulated Alexa+ frame use the core consent rules, though that frame currently keeps its own session and archive state.

Challenges we ran into

The central challenge was making a permission change take effect throughout an active story. A photograph can appear in a chapter, thread, placard, and spoken text, so withdrawing it must update each place. File reads and local saves can finish later than the action that started them, requiring careful ordering. We preserved partial dates and gave people stable IDs so relatives with the same name remain distinct. The archive must reopen intact while the visit starts locked. The separate browser and MCP stores need integration before one continuous cross-client visit can be offered.

Accomplishments

FAMILIAR MEMORIES lets a keeper bring in original photographs, describe their context, approve individual audiences, and open a visit for a confirmed person. The visitor receives an explainable selection with source captions and can explore threads and chapters. The keeper can narrow a story, end the visit, save the archive locally, or transfer it in a package that opens locked. The demo family shows how one collection produces different stories for Walt and Ellie according to the sharing choices recorded for each.

What we learned

We learned that a personal story begins with permission and source context. The curator chooses among approved photographs and explains each choice using the family's recorded facts. Preserving an uncertain date respects that source, just as leaving an unknown visitor at the locked frame respects the family's choice. Narration must follow current permission even when browser callbacks arrive late. Evaluation with consenting families will tell us more about comfort and usefulness than a synthetic curation exercise can.

What's next

Next we want to connect the keeper archive and MCP frame to shared, persistent permission and visit state. A larger, deliberately sourced collection will help us study repeat visits. With consenting families, we plan to learn how people understand selection reasons, experience narration, and use the frame on a connected display. Manual confirmation will remain available when visitor identity is uncertain.

Built With

Share this project:

Updates

Submission history