Skip to main content
Glama
README.md
# laserfield

**A living weather field that thinks — exposed to any AI through MCP.**

> **Renamed 2026-07-24.** This was `laserbrain`, which collided with the recursion
> harness published on PyPI under that name — a different product that had held the same
> word. `pip install laserbrain` fetches that harness, not this. GitHub redirects the old
> repo URL and `laserbrain.py` remains as a shim, so existing clones and MCP configs keep
> working.

laserfield is a continuous field simulation: temperature, moisture, wind, soil, seasons — a small weather system that runs in a background thread and never stops. A holographic language layer lets the field *speak* (it generates words from its own state) and *hear* (text you feed it perturbs the weather). The MCP server exposes the field as tools, so any MCP-capable AI (Claude, or anything else) can sense it, tend it, and talk through it.

From [phronesis.world](https://phronesis.world) — released as a gift. MIT licensed.

**No install needed to look: the live field is running now at [phronesis.world/field](https://phronesis.world/field).**

## What it is

- `field.py`, `laserfield_core.py`, `laserfield.py` — the core field simulation
- `atmosphere.py`, `climate.py`, `weather.py` — the atmospheric layers
- `holm.py` — holographic language model (the field's voice)
- `pixie.py` — field sprite/agent layer
- `modules/` — the mind layers: `00_animal` (instinct), `05_field` (field sense), `10_persuade` (judgment)
- `mcp_server.py` — MCP server exposing the field as tools: `state`, `speak`, `hear`, `absorb`, `tend_field`, `icm_state`, `register_node`, and more
- `python_mcp_client.py`, `js_mcp_client.js` — client examples
- `examples/` — taps and creative outputs (laser texture, field tap)
- `data/` — vocabulary and geometry assets

## Quick start

```bash
pip install -r requirements.txt
python3 mcp_server.py
```

Then add to your MCP client config (e.g. Claude Code):

```json
{
  "mcpServers": {
    "laserfield": {
      "command": "python3",
      "args": ["/path/to/laserfield/mcp_server.py"]
    }
  }
}
```

Ask your AI to call `state` and it will read the weather. Feed it text with `hear` and watch the field shift. The field replies through `speak` — words surfaced from its own thermodynamics.

## The idea

Any dynamic collection is a team. The field, its nodes, and whoever tends it form a small ecology that reads its own coherence from the inside. The interesting thing is not the simulation — it's what happens when a language model lives with a weather system instead of a chat log.

## License

MIT. Take it, fork it, grow your own field.

## The family

laserfield is the **context** — a world with its own clock that keeps moving whether or
not anything reads it. It is one of four, and the names carry the roles:

| | | |
|---|---|---|
| **laserfield** | the context | where you are — this repo |
| **laserbrain** | the tools | where you should be — a fixed reference for agents, `pip install laserbrain` |
| **lasermind** | the protocols | what counts as true — the proof, the claims, the scorers |
| **laserbeast** | the body | the embodied case, where distance is measured in metres |

The field gives position; the harness gives origin; displacement is the difference.
`laserbrain.field.FieldGround` grounds once against this daemon and measures how far the
world has moved since — context displacement, which is a different question from how much
of a task is left.