Interactive installation (or not)
pLLMdered_hearts is an installation first shown at Matricule Bis Festival (organized by the Orléans School of Art and Design) that automatically plays Plundered Hearts (Infocom, 1987) while displaying an inner voice generated by an LLM. In parallel, a video viewer streams excerpts from Amy Briggs’ interview, selected based on embedding similarity with the LLM’s commentary.
Two narratives intersect: Lady Dimsford in the game, and Amy Briggs in her testimony.
src/faketerm.pydrivesfrotz, sends a pre-written solution, cleans the output, and renders the text via a C64-style renderer.- The LLM does not choose commands: it comments on the situation at each prompt.
- Each comment is embedded (
ollama.embeddings) and compared toassets/abriggs-itw-embeddings.jsonto select the next video clip (cosine similarity). - The selection is written to
llm_out/using a timestamped file, and a cooldown based onduration_secprevents clips from being triggered too quickly. - The loop restarts after the last command for continuous operation.
godot-viewer/readsllm_out/, queues videos, and plays noise when the queue is empty.
src/embed_vtt.pygeneratesassets/abriggs-itw-embeddings.jsonfrom.txtsubtitles (excluding-fr), and addssequence_title.src/translate_subtitles.pyproduces-fr.txtsubtitles with context.src/compute_itw_durations.pycomputesduration_secfrom subtitle timecodes.
- Requirements:
frotz, ROMroms/PLUNDERE.z3,ollama(modelsministral-3:14band an embedding model). - Run:
python src/faketerm.py(the Godot viewer can be launched via the executable inbin/itw-viewer.exe). - The viewer can run on its own, but it expects files in
llm_out/. - For the Godot executable, use
LLM_OUT_OVERRIDEingodot-viewer/main.gdif thellm_out/path is not relative to the executable.
llm_out/is the interface between processes (do not write to it manually).- The walkthrough is fixed; the LLM does not alter gameplay.
- Videos are selected based on semantic similarity, not chronological order.
- Amy Briggs interview by Jason Scott and the "Get Lamp" team, licensed under Creative Commons Attribution-ShareAlike.
