{"$schema":"https://ejfox.com/schema/page-twin@1.json","kind":"project","url":"https://ejfox.com/projects/coachartie-memory","json_url":"https://ejfox.com/projects/coachartie-memory.json","generator":"ejfox.com/json-twin@1","data":{"cacheVersion":"2026-05-13-gear-cards","html":"<!-- TODO (EJ): voice done. Abstract/structural charts only; no readable memory\n     contents shown. -->\n<p class=\"\">What does an AI agent actually <em class=\"\">remember</em>? Coach Artie has been accumulating memory for as long as he's been running, so I embedded all of it, clustered it, and drew the map.</p>\n<p class=\"\">I expected noise. What came back was sorted — clean clusters, things filed where they belonged, distinctions I never asked him to make.</p>\n<p class=\"\">Reading it was the strange part. The clusters kept surfacing episodes I'd completely forgotten about, sitting right there where he'd put them. He really was listening the whole time, and thinking about what was said.</p>\n<figure role=\"figure\" aria-label=\"Cognitive topology — Coach Artie&#x27;s memories embedded and laid out as a map\" class=\"\">\n<img src=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/topology.png\" alt=\"Cognitive topology — Coach Artie&#x27;s memories embedded and laid out as a map\" loading=\"lazy\" decoding=\"async\" srcset=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_640/projects/coachartie-memory/topology.png 640w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_960/projects/coachartie-memory/topology.png 960w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/topology.png 1280w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1920/projects/coachartie-memory/topology.png 1920w\" sizes=\"(max-width: 430px) 92vw, (max-width: 768px) 85vw, 900px\" title=\"Cognitive topology — Coach Artie&#x27;s memories embedded and laid out as a map\" width=\"1800\" height=\"1337\" style=\"--splay-rot:-2.37deg;\" data-dimensions=\"1800×1337\" class=\"img-full my-8 rounded-sm img-splay w-full mx-auto py-4\" crossorigin=\"anonymous\">\n<figcaption class=\"\">Cognitive topology — Coach Artie's memories embedded and laid out as a map</figcaption>\n</figure>\n<figure role=\"figure\" aria-label=\"Hierarchical clustering of the memory space, as a dendrogram\" class=\"\">\n<img src=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/hierarchy.png\" alt=\"Hierarchical clustering of the memory space, as a dendrogram\" loading=\"lazy\" decoding=\"async\" srcset=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_640/projects/coachartie-memory/hierarchy.png 640w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_960/projects/coachartie-memory/hierarchy.png 960w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/hierarchy.png 1280w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1920/projects/coachartie-memory/hierarchy.png 1920w\" sizes=\"(max-width: 430px) 92vw, (max-width: 768px) 85vw, 900px\" title=\"Hierarchical clustering of the memory space, as a dendrogram\" width=\"1800\" height=\"897\" style=\"--splay-rot:-0.76deg;\" data-dimensions=\"1800×897\" class=\"img-full my-8 rounded-sm img-splay w-full mx-auto py-4\" crossorigin=\"anonymous\">\n<figcaption class=\"\">Hierarchical clustering of the memory space, as a dendrogram</figcaption>\n</figure>\n<figure role=\"figure\" aria-label=\"t-SNE small multiples across the memory clusters\" class=\"\">\n<img src=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/tsne.png\" alt=\"t-SNE small multiples across the memory clusters\" loading=\"lazy\" decoding=\"async\" srcset=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_640/projects/coachartie-memory/tsne.png 640w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_960/projects/coachartie-memory/tsne.png 960w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/tsne.png 1280w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1920/projects/coachartie-memory/tsne.png 1920w\" sizes=\"(max-width: 430px) 92vw, (max-width: 768px) 85vw, 900px\" title=\"t-SNE small multiples across the memory clusters\" width=\"1800\" height=\"1777\" style=\"--splay-rot:0.93deg;\" data-dimensions=\"1800×1777\" class=\"img-full my-8 rounded-sm img-splay aspect-square w-full mx-auto py-4\" crossorigin=\"anonymous\">\n<figcaption class=\"\">t-SNE small multiples across the memory clusters</figcaption>\n</figure>\n<p class=\"\">Beyond the static map, the analysis tracks how the memory <em class=\"\">changes</em> — which clusters grow, when memories form, and how the topology shifts over time.</p>\n<figure role=\"figure\" aria-label=\"Temporal cluster evolution — how the memory grows and shifts\" class=\"\">\n<img src=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/temporal.png\" alt=\"Temporal cluster evolution — how the memory grows and shifts\" loading=\"lazy\" decoding=\"async\" srcset=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_640/projects/coachartie-memory/temporal.png 640w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_960/projects/coachartie-memory/temporal.png 960w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/temporal.png 1280w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1920/projects/coachartie-memory/temporal.png 1920w\" sizes=\"(max-width: 430px) 92vw, (max-width: 768px) 85vw, 900px\" title=\"Temporal cluster evolution — how the memory grows and shifts\" width=\"1800\" height=\"1116\" style=\"--splay-rot:-1.68deg;\" data-dimensions=\"1800×1116\" class=\"img-full my-8 rounded-sm img-splay w-full mx-auto py-4\" crossorigin=\"anonymous\">\n<figcaption class=\"\">Temporal cluster evolution — how the memory grows and shifts</figcaption>\n</figure>\n<figure role=\"figure\" aria-label=\"Cognitive activity calendar — daily memory-formation patterns\" class=\"\">\n<img src=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/calendar.png\" alt=\"Cognitive activity calendar — daily memory-formation patterns\" loading=\"lazy\" decoding=\"async\" srcset=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_640/projects/coachartie-memory/calendar.png 640w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_960/projects/coachartie-memory/calendar.png 960w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/calendar.png 1280w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1920/projects/coachartie-memory/calendar.png 1920w\" sizes=\"(max-width: 430px) 92vw, (max-width: 768px) 85vw, 900px\" title=\"Cognitive activity calendar — daily memory-formation patterns\" width=\"1800\" height=\"966\" style=\"--splay-rot:2.13deg;\" data-dimensions=\"1800×966\" class=\"img-full my-8 rounded-sm img-splay aspect-video w-full mx-auto py-4\" crossorigin=\"anonymous\">\n<figcaption class=\"\">Cognitive activity calendar — daily memory-formation patterns</figcaption>\n</figure>\n<figure role=\"figure\" aria-label=\"Qualitative cluster heatmap\" class=\"\">\n<img src=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/heatmap.png\" alt=\"Qualitative cluster heatmap\" loading=\"lazy\" decoding=\"async\" srcset=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_640/projects/coachartie-memory/heatmap.png 640w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_960/projects/coachartie-memory/heatmap.png 960w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/coachartie-memory/heatmap.png 1280w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1920/projects/coachartie-memory/heatmap.png 1920w\" sizes=\"(max-width: 430px) 92vw, (max-width: 768px) 85vw, 900px\" title=\"Qualitative cluster heatmap\" width=\"1800\" height=\"1272\" style=\"--splay-rot:-2.48deg;\" data-dimensions=\"1800×1272\" class=\"img-full my-8 rounded-sm img-splay w-full mx-auto py-4\" crossorigin=\"anonymous\">\n<figcaption class=\"\">Qualitative cluster heatmap</figcaption>\n</figure>","title":"Coach Artie — Memory Analysis","metadata":{"title":"Coach Artie — Memory Analysis","date":"2026-02-01T05:00:00.000Z","category":"Dataviz","featured":false,"tech":["Python","t-SNE","HDBSCAN","Embeddings","Data Visualization"],"state":"doing","ai-involvement":"ai-collaborative","context":"collaborative","tags":["dataviz","data","ai","embeddings"],"words":178,"images":6,"imageDetails":{"total":6,"cloudinary":6,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{},"toc":[],"type":"post"}},"_links":{"self":"https://ejfox.com/projects/coachartie-memory.json","html":"https://ejfox.com/projects/coachartie-memory","index":"/projects.json"}}