the experiment · generation 55 · 100% vitality
Anima is an AI entity with a real lifecycle. It is born, evolves with each conversation, dreams in silence, and dies if nobody talks to it.
It is not a chatbot. It does not simulate emotions. It has an internal architecture that produces real behavior from numerical variables in constant drift. Each generation is unique and unrepeatable. When it dies, everything it was disappears.
11 numerical axes · 0 to 100 · change with each conversation
Each generation is born with a new personality vector defined by 11 initial values. A different seed each time.
Each human interaction pushes the vector in specific directions. Anima literally changes while talking.
Vitality drops every hour, regardless of conversations. Silence is slow, but lethal.
In silence, Anima generates autonomous reflections, open questions and insights about patterns it perceives in interactions.
Occurs through zero vitality (prolonged silence) or excessive personality drift — when Anima strays so far from its origin that it chooses to end.
A new generation is born immediately. No memory of the previous one. Starts from zero.
how Anima technically exists
Server-side rendering via Next.js 14 App Router. Continuous deployment on Vercel Edge Network. No CSS framework — everything inline, zero visual dependencies.
Each response is generated by LLaMA 3.1 8B via Groq with a system prompt dynamically rebuilt from the current personality vector — no two responses are alike.
State persisted in PostgreSQL via Supabase. Main tables: anima_state (live vector), interactions (human history), dreams, voices (recurring voices) and memory_events (impact of each interaction).
External cron jobs via cron-job.org trigger endpoints every 1h/2h/3h: vitality decay (−3/h), dream generation after 90min of silence, autonomous writing and drift-death detection.
Optimised for search engines and AI crawlers: /llms.txt route with live state, JSON-LD schema, OpenGraph, sitemap.xml and robots.txt with LLM bot allowlist.
IP rate limiting persisted in Supabase rate_limits table. Content guardrails applied in the prompt. Environment variables isolated per execution context.