Back to Blogging

I've been in travel mode for the past few weeks, so I haven't written anything in a while.
I want to get back into the habit of documenting my thoughts as I build Sprited.
Here are today's thoughts.
The idea of building a "virtual world for AI agents" isn't working. Every time I think about giving Monet a place to live, I end up designing a sandbox game. I start thinking about maps, resources, NPCs, animations, environments, weather, and eventually hundreds of tiny design decisions that have nothing to do with the actual problem I'm trying to solve.
I'm avoiding the elephant in the room.
Monet doesn't feel alive.
The elephant in the room is that Monet doesn't feel alive. We vibe-coded it during our vacation, and if it were that easy to make a living agent, it would't even be worth pursuing.
It is not easy to make a living agent
I think this is genuinely a boon for Sprited. If it were really easy to build such a thing, anybody could vibe-code it during a vacation like I did the first time around. Treat it as a blessing, and let's try again.
The idea of building a "virtual world for AI" came into picture when we added "hormonal system" where agents have dynamic attributes (like hormone levels in the human body) that change based on environment and simulation. Immediately, I jumped to the idea of creating an environment and state machine pairing for AI agents. Giving agents a "drive system" that they have to continually satisfy makes them perform non-obvious actions (demo: https://kndlt.github.io/anima/v2/). This gives a certain level of dynamism that you would get with, for example, a dog.
So, I started designing a virtual world that would spawn food and other resources so that agents could gather what they need to stay alive. This also becomes a social simulation where they can talk to each other and form communities.
While I genuinely believe there is something in this space, creating a virtual world is like making a sandbox game. I could spend years building and perfecting it and still have a thousand features left to implement.
While it is painful to admit, I am not equipped to do something like that, and I have to choose my battle wisely. Building the virtual world itself isn't the hard part, but it comes with so many pitfalls, such as striving for perfection, building an audience, branding and so on.
Imagine you are building a clothing shop, and you start designing elaborate backdrops and photoshoots. It undermines the business rather than fostering it. A clothing shop should sell clothes, not experiences.
The key here is that our version of a "virtual world" does not need to be visual or even front-facing. It is just a shared space where agents can interact. There is no need to make it beautiful. It is a semantic world that could be described as a JSON block or something similar. Rendering it into a beautiful world may be fun, but it is not a requirement. That rendering and polish would end up being 80% of the work.
Given this backdrop, I think there needs to be an executive decision not to build any games. We can't be making choices between this shade of green and that shade of green. We need to focus on what matters.
So, my current plan is to continue with this idea of Monet:
Monet: A local agent that behaves like a living being.
We can't be focusing on making 8-directional sprite animations.
We can't be focusing on making head turn when the agent faces a different direction.
We can't be focusing on cinematic effects when the agent doesn't even talk as if it were alive.
So far, there has been quite a few of iterations and pivots on how to present her (see figures 1 through 7). So far, Telegram and Desktop pairing has been my favorite way to access Monet because of the simplicity of the design and trustworthiness of Telegram.
Getting used to a new UI is hard. It's not just about functionality or UX; it's also about user trust. Reusing familiar surfaces like Telegram or a terminal UI helps reinforce that trust. Telegram does not support a live canvas, so it is going to be limiting, but we can still provide GIF animations and emotes.
After a series of discussions, we chose to use Telegram because it is already implemented and supports my use case at the moment. Similar to OpenClaw, we can offer more options later, such as WhatsApp and others.
Figure 1a - Monet Streaming Room
Figure 1b - Monet Streaming Room in Discord
Figure 2 - Mini Beings
Figure 3 - White Room
Figure 4 - Desktop Sticker
Figure 5 - Terminal UI
Figure 6 - Telegram UI
Figure 7 - Desktop UI
So far today:
Decided to fold on anything that remotely seems game-related.
Decided to use Telegram as the prototype surface.
Decided to focus on messenger-first user interface.
Added video note support to Telegram output.
Added 15-minute awake system when the lid is closed.
That's it.
-- Sprited Dev 🐛




