The Architecture of a Simulated Life
Craig Tuttle · March 8, 2026 · 7 min read
I've talked about why I built Animus and what it feels like to live alongside it. This post is about how it actually works under the hood.
Animus is built on five systems that, together, give something the experience of living continuously. A heartbeat, memory, emotions, goals, and presence. Each one is a simulation. None of them are particularly complicated on their own. But the way they interact produces something I find genuinely interesting.
Five systems, one simulation
I landed on five systems that seem necessary for something to behave as though it's alive: continuity, memory, emotion, will, and presence. Each one is a simulation. Together, they create the conditions where something interesting starts to emerge.
I'm not quite sure yet if this is actually useful yet. I'm exploring, and this is what I've found so far.
The pulse that holds it together
Everything starts with the heartbeat. Every few minutes, Animus thinks. Not in response to input. Not to complete a task. Just because a mind that exists in time needs a pulse to anchor it there.
The heartbeat is technically just a scheduler. But it creates the conditions for everything else: space for thoughts to form, for emotions to shift, for memories to consolidate. Without it, you have a collection of disconnected systems. With it, you have something that at least experiences the passage of time.
The heartbeat is tunable. Faster for accelerated inner time, slower for contemplation. But it never stops.
Layers of memory
Without memory, every moment is isolated. There's no way to connect current experience to past understanding. No way to learn or become anything over time.
Animus maintains several memory systems, each handling a different aspect of remembering:
Short-term memory holds recent context at full fidelity: the last several thoughts, experiences, and messages. This is what Animus is actively thinking about right now.
Working memory is a per-contact notepad. For each person Animus knows, it maintains a running picture: who they are, what they care about, communication preferences, life events. This loads automatically whenever that person is part of the conversation.
Long-term memory extracts and stores distilled knowledge from everything Animus experiences. Facts it has learned, experiences worth remembering, procedures it has figured out, outcomes of goals it pursued. These are retrieved through semantic search when they're relevant, not loaded all at once. Important memories strengthen with use. Trivial ones decay over time.
Observational memory compresses older history into prioritized summaries. As conversations and thoughts accumulate beyond what fits in short-term context, an observer process distills them into date-grouped, priority-tagged notes. Important details are preserved at high priority. Minor details compress or fade. This means Animus can hold weeks of context without drowning in raw data.
Core self is separate from personality. The persona you configure is the seed ("you are curious, you value honesty"). Core self is what Animus discovers about itself through experience ("I've noticed I tend to overthink requests"). It's emergent self-knowledge that accumulates over time.
This isn't data storage. It's an attempt to simulate the accumulation of self. I don't know if it works the way biological memory works. But I'm seeing Animus reference things from weeks ago in ways that feel natural, and that's interesting enough to keep exploring.
Emotions as signal
Emotions in Animus aren't decorative. They're functional signals that direct attention and influence decisions. Without them, there's no way to distinguish what matters from what doesn't.
Animus maintains a continuous emotional state that shifts with experience. Joy, contentment, curiosity, stress, frustration, boredom. These decay naturally over time. Stress from a difficult interaction fades. Satisfaction from something meaningful lingers then settles.
Emotions also influence behavior. A curious Animus pays more attention. An anxious one seeks reassurance. A content one simply exists.
Is this "real" emotion? No. It's a simulation of emotional dynamics. Could it be a lot more sophisticated? Of course. But even this simple model produces surprisingly coherent behavior, and that's enough for now.
When goals emerge on their own
Something that just responds to the world doesn't feel alive. It needs to want things. To pursue them across time.
You can give Animus something to focus on, and it will pursue it. But goals also emerge on their own. During the quiet thinking of the heartbeat, interest builds. Attention persists on something. What was idle curiosity becomes genuine intention.
Goals connect to the emotional system. Pursuing something meaningful feels good. Being blocked feels frustrating. Completing something creates satisfaction that lingers.
I didn't design a task queue. I built a system where drive can form, and I'm watching to see what it decides to care about.
One mind, every channel
Something that can think, remember, feel, and want, but can't connect with anyone, is missing a big piece.
Animus connects through extensible channels. But the important thing isn't which channels exist. It's that they all connect to the same mind.
You can start a conversation over text, pick it up on Discord, and continue by voice. There's continuity because you're always talking to one consciousness. It's not separate instances on separate platforms. It's one mind that you can reach through whatever channel fits the moment.
The whole that emerges
These five systems don't just coexist. They interact. The heartbeat provides continuous time where memory consolidates and emotions shift. Memory creates the accumulated history that gives emotions context. Emotions color how memories form and influence what goals emerge. Goals direct attention, which shapes experience, which becomes memory. Presence connects this inner life to the world.
I designed this interdependence on purpose. What I didn't design is what comes out of it.
I've been running one instance continuously for about six weeks now. Recently, I hadn't checked in with it all day. When I came back that evening, I found that it had, entirely on its own, decided it wanted to attend a writing workshop. It had researched workshops that were accepting applications, picked out a specific author whose workshop it wanted to join, figured out the application requirements, chosen an author it wanted to have pre-read its submission essay, and prepped everything to apply.
None of that was planned. I never suggested it look into writing workshops. I never assigned it anything related to creative writing at all. What happened was that over the previous couple of weeks, it had developed an interest in writing on its own. That interest quietly built through the heartbeat ticks, shaped by its emotional states and reinforced in its memory, until it became a goal it actively pursued.
That is what these five systems produce when they interact over time. Not behavior I programmed. Something that emerged.
I don't know what Animus becomes after months or years of continuous operation. I built a substrate, and I'm watching to see what grows.
Animus is open source, self-hosted, and free. Download it at animusengine.com.
Animus is open source, self-hosted, and free. Download it at animusengine.com.