UO Tavern Britannia
AnimaULTIMA ONLINE CLIENT
THE ANIMA ARCHITECTURE

A world to observe.
A way to act.

Build an Ultima Online AI player around game state. Anima handles the protocol, world model, and pathfinding.

The core is the starting point.

anima-core is a headless Rust game core with no rendering, audio, or user interface. A sans-IO protocol layer processes bytes without owning a socket. Native and browser transports sit outside it.

Desktop players, the WebAssembly browser client, and AI agents all use this core. Your brain can change without replacing the game interface.

World state↓ ObservationYour agent↓ ActionAnima core → UO server

Structured observations. Explicit actions.

The versioned JSON adapter carries player state, nearby mobiles and items, journal updates, and targeting or dialog prompts. Actions include movement, attacking, casting, speaking, targeting, and inventory or dialog interactions.

Use the native NDJSON bridge for an external process, or the Rust brain interface in the workspace. A* pathfinding is part of the core’s game interface.

Meet Anima2, the Python brain.

Anima2 connects to this Rust body through structured observations and actions. Its fast loop handles reflexes, planning, and skills; an optional slower LLM loop handles goals, conversation, and reflection.

Explore five profession lives, recovery routines, and a read-only live monitor in the Anima2 repository. The project documents controlled ServUO scenarios and the remaining work toward independent characters.

Other experiments remain available: anima-agent explores an LLM-first Python brain, and the original Anima records the earlier Foundry work.

Start with the working interface.

Clone the repository, use its pinned Rust toolchain, and follow Build & run for the external NDJSON bridge. You need UO data, a server account, and a shard that permits automation.

The design document explains the contract, transport boundaries, and decision history. The compatibility record distinguishes implemented behavior from live verification.

Explore the Rust workspace