# The Pond — Free Associator & Idea Recaller

## What Is This

A **thinking companion with a living spatial canvas**. You bring a topic or interest — maybe prompted by news, a video, a problem you're chewing on — and riff on it freely. The Pond enriches your thinking by pulling in evidence, examples, analogies, and connections from your accumulated knowledge, the live web, and curated feeds.

Not search. Not Q&A. More like having a well-read collaborator who says *"oh, that reminds me of..."* — except it's visual, ambient, and draws from everything you've ever learned.

## Why This Is Different

| LLM brainstorming skills/plugins       | The Pond                                            |
|-----------------------------------------|-----------------------------------------------------|
| Sequential, text-based                  | Spatial, visual, ambient                             |
| Turn-by-turn prompting                  | Always-on flow + on-demand deepening                 |
| Generic LLM knowledge                   | YOUR accumulated KB + live web + curated feeds       |
| Stateless per session                   | Persistent — ideas have lifecycle, energy, history   |
| Structured process (steps, checklists)  | Free association — riff, drift, follow energy        |
| One thread at a time                    | Many ideas coexisting, competing for attention       |

Existing brainstorming skills are **process tools** — they impose structure. The Pond is a **generative environment** — it creates conditions for serendipity. You don't follow steps, you swim.

And it's **project-contextual**: when you're deep in `intel/companies/semi`, the pond knows your domain, your accumulated principles, your past failure patterns. It brainstorms with *your* brain, not a generic one.

## The Canvas

> [illustration: `01_canvas_overview.png` — Wide shot of color-coded idea cards floating in force-directed layout over dark water, connected by luminous threads. Imagen Fast.]

A koi pond of ideas. Luminous cards float in a force-directed space.

### Idea Cards

- **Color-coded by type**: examples, analogies, generalizations, principles, evidence, questions
- **Short form visible** on the face — title + snippet
- **Expandable**: click to flip/expand for full details, source, connections
- **Draggable**: pull items where you want them, cluster related things together

### Lifecycle

> [illustration: `04_lifecycle_decay.png` — Bright ideas materializing on left, steady amber glow in center, fading to embers on right — the luminance lifecycle reflected in dark water. DALL-E 3.]

Ideas have a luminance lifecycle governed by interestingness:

```
appear bright  →  glow steadily  →  gradually fade  →  ember (expandable)  →  log
```

- **Interestingness determines half-life** — boring ideas fade faster
- **Embers** are still on the canvas but dim, expandable on hover
- **Logged ideas** leave the canvas entirely but remain fully searchable
- Everything persists — nothing is lost, just transitions in visibility

### Spreading Activation

> [illustration: `02_spreading_activation.png` — Central card glowing intensely with concentric energy ripples propagating outward, connected cards brightening. Gemini Flash.]

Clicking an idea **gives it energy**, and that energy propagates to related ideas:

- Related cards glow brighter, drift closer
- This is how human associative memory actually works — [spreading activation](https://en.wikipedia.org/wiki/Spreading_activation)
- Creates emergent clustering: ideas that keep getting energized together form visible constellations
- A click is a signal: "I'm interested in this neighborhood"

### Flow Mode

> [illustration: `06_flow_constellation.png` — Bird's eye view of the canvas in flow mode, showing emergent constellations of clustered ideas connected by bright threads, with bridge ideas between clusters. Gemini Pro.]

- **Auto-flow**: ideas circulate, remix positions — like watching koi drift
- **Pauseable**: freeze the layout to study what's there
- The flow itself is generative — unexpected juxtapositions spark new associations

## Pond Geography

The pond isn't a uniform canvas — it has **landscape**. Named regions where different types of ideas originate and cluster, like a real pond with islands, outlets, and shores.

```
    ┌─────────────────────────────────────────────┐
    │                                             │
    │     🪨 Memories                              │
    │      (KB principles,        🌊 Web           │
    │       past learnings)        (live search,  │
    │                               articles)     │
    │                                             │
    │            ~~~~ open water ~~~~             │
    │          (where ideas mingle,               │
    │           drift, collide)                   │
    │                                             │
    │     📖 Examples              🔮 Analogies     │
    │      (concrete instances,     (cross-domain │
    │       historical)              parallels)   │
    │                                             │
    │              📝 Your Shore                   │
    │           (notes, thoughts,                 │
    │            the input dock)                  │
    │                                             │
    └─────────────────────────────────────────────┘
```

- **Ideas originate from their region** — a new KB principle appears near the Memories island, a web result surfaces near the Web outlet
- **Ideas drift toward center** (open water) over time — that's where cross-pollination happens
- **Clicking an idea near a region** energizes that whole region — more of that type flows in
- **Your Shore** is where your input box lives — your thoughts enter from there and drift outward
- **Volume controls live at each region** — walk over to the Examples island and open the flow, or quiet it down
- **Open water is the mixing zone** — ideas that survive long enough to reach center have proven their interestingness

The geography gives **spatial memory** — "I remember that idea was over near the Analogies rock." Your brain maps ideas to locations, which is how memory palaces work.

## Source Flows

Each knowledge source is a **faucet** with a volume control. Turn up what you want more of, quiet what's noisy.

| Flow             | Color  | Region          | What it produces                                    |
|------------------|--------|-----------------|-----------------------------------------------------|
| **Examples**     | green  | 📖 Examples     | Concrete instances from KB + web                    |
| **Principles**   | blue   | 🪨 Memories     | Generalizations, rules, patterns from learning.db   |
| **Analogies**    | purple | 🔮 Analogies    | Cross-domain parallels ("this is like X in Y")      |
| **Evidence**     | amber  | 🌊 Web          | Data, studies, citations from live search            |
| **Historical**   | sepia  | 📖 Examples     | Past instances, how this played out before           |
| **Questions**    | red    | open water      | Challenges, counter-arguments, open problems         |
| **Suggestions**  | white  | 📝 Your Shore   | Possible user inputs — editable prompts to catch     |

Volume: 0 (off) → 1 (trickle) → 5 (firehose). Mixer UI is a small collapsible panel, or adjust at each region directly. "Open up example flow" = drag the examples slider from 2 to 5.

## Suggested Prompts

The system watches your thinking and generates **possible next moves** — these float as a distinct card type (white/ghost, lighter than regular ideas):

- "Let's look at historical examples of this"
- "What would a skeptic say?"
- "Any analogies from biology?"
- "How does this connect to [principle X you recorded last month]?"

These are **catchable and editable**: click to send as-is, or click-and-edit to refine before sending. They're the system saying "you might want to go here" — but you steer.

Ordered by **predicted relevance** given current canvas state + your interaction history.

## The Brain

### Always-On Generation

An LLM continuously reads the canvas state (active topic, energized ideas, user's recent input) and generates new associations. New ideas appear as bright cards entering the pond from their source region.

Variety is a feature: the system intentionally introduces diversity — not just "more of the same" but lateral connections, contrasting evidence, analogies from other domains.

### On-Demand Deepening

Focus an item and get contextual actions:

- **Find examples** of this principle/pattern
- **Generalize** — what's the broader pattern?
- **Apply** — where else does this apply?
- **Challenge** — what's the counter-evidence?
- **Connect** — how does this relate to [other item on canvas]?

Actions ordered by **availability** (do we have data?) and **predicted likelihood** (will this be interesting given current context?).

### Knowledge Sources

Three layers, widening the net:

1. **Internal KB** — learning.db: 1,100+ instances, 98 principles, failure pairs, all with embeddings. Your accumulated knowledge.
2. **Live web** — real-time search for fresh evidence, recent articles, current data via Serper API
3. **Curated feeds** — news, arxiv, HN, YouTube channels you subscribe to. Domain-specific signal.

## The Input

> [illustration: `05_input_interaction.png` — Translucent frosted input box hovering over dark water, light particles streaming down to materialize as a new idea card. Flux Dev.]

A **floating input box** — not a chat interface, a thought entry point:

- Type a new thought or idea → it enters the pond as a card
- Type a command to the environment → "make it darker", "add more ideas", "focus on semiconductors", "slow down"
- Type a question → the brain treats it as a deepening request
- The input box itself floats, can be repositioned, minimized

## Fanciful Mode: The Koi Pond

> [illustration: `03_koi_metaphor.png` — Luminous golden and silver koi fish swimming in dark water, schooling by relatedness. Grok.]

An optional visual mode where ideas are rendered as koi fish:

- Different species/colors for different idea types
- Fish school together by relatedness
- Click a fish to interact — it surfaces, shows its idea
- Feeding the pond (adding ideas) attracts fish to that area
- Pure delight. Functional delight.

## Technical Direction

**Architecture**: FastAPI + WebSocket backend (Python) + PixiJS frontend (JS canvas)

```
┌──────────────────────────────────────────────┐
│  Browser (pond.localhost)                    │
│  ┌────────────────────────────────────────┐  │
│  │  PixiJS Canvas                         │  │
│  │  - d3-force layout with regions        │  │
│  │  - Glow/fade shaders per card          │  │
│  │  - Spreading activation animation      │  │
│  │  - Drag, click, hover interactions     │  │
│  ├────────────────────────────────────────┤  │
│  │  Floating Input + Flow Mixer           │  │
│  └──────────┬─────────────────────────────┘  │
│          WebSocket (bidirectional)           │
└─────────────┼────────────────────────────────┘
              │
┌─────────────┼────────────────────────────────┐
│  FastAPI + WebSocket Server                  │
│  ┌──────────┴─────────────────────────────┐  │
│  │  /ws — real-time stream                │  │
│  │    user input → parse → recall/gen     │  │
│  │    click → spreading activation        │  │
│  │    canvas state → LLM → new ideas      │  │
│  │    env commands → theme/flow control   │  │
│  ├────────────────────────────────────────┤  │
│  │  Source Flow Engine                    │  │
│  │    Each flow: retriever + volume knob  │  │
│  │    - KB recall (embedding similarity)  │  │
│  │    - Web search (Serper API)           │  │
│  │    - Feed ingestion (RSS, YT, HN)      │  │
│  │    - LLM generation (always-on)        │  │
│  │    - Suggestion generator              │  │
│  ├────────────────────────────────────────┤  │
│  │  Energy Model                          │  │
│  │    - Per-idea energy + half-life       │  │
│  │    - Spreading activation graph        │  │
│  │    - Decay tick → fade/ember/log       │  │
│  └────────────────────────────────────────┘  │
└──────────────────────────────────────────────┘
```

- **Served at**: `pond.localhost` (rivus server pattern, Caddy proxy)
- **Theming is a separate layer**: koi pond vs abstract dark vs whatever — presentation skin over the same data/flow system

**Why not Gradio**: The spatial, ambient, always-animating nature of the canvas doesn't fit Gradio's component model. This needs a proper canvas with physics simulation and GPU rendering.

## What Success Looks Like

- You sit down with a vague interest and 20 minutes later have a constellation of connected ideas you didn't expect
- The pond surfaces a principle you recorded 3 months ago that's suddenly relevant
- You notice two ideas drifting together and realize there's a connection you hadn't seen
- You leave with threads to pull on, not a finished document — the pond is generative, not conclusive
