EV - AI Assistant
- 5 Devlogs
- 45 Total hours
Recreation of THE AI ASSISTANT from “Spider Man Brand New Day”
Recreation of THE AI ASSISTANT from “Spider Man Brand New Day”
Iterations 9, 10 and 11. Lowkey the biggest glow up E.V. has had so far.
E.V. has a face now. It’s a little floating dark screen with two glowing eyes that sits on your desktop and reacts to whatever it’s doing. Listening, thinking, talking, happy, confused, sleepy, and even angry for some reason. yeah dont ask.
It’s its own process. The face runs on PySide6 in a separate process, so the main assistant never loads Qt and stays tiny. If the face crashes, E.V. doesn’t care, it just keeps going. No PySide6 installed? No face, nothing else changes.
Every mood is just JSON. All the expressions live in expressions.json as eye shapes, lid angles, glow and colour. The eyes ease between moods smoothly, blink on their own and glance around so it never looks dead inside.
Captions. What you said and what E.V. says back pop up in a speech bubble next to the face. The bubble is click-through so it never gets in the way.
It only pulls up when you call it. Say “E.V.” and it slides in, stop talking and it dips. If you’re watching something full screen it stays hidden, because nobody wants a robot photobombing their movie.
Media control. “Pause the music”, “next song”, “turn it down”. Works on Linux and Windows without installing anything extra.
Finally Stopped Ignoring Ubuntu. I switched to Ubuntu and half of E.V. broke ngl. The mic needed a fallback to pw-record / parec / arecord, app launching had to learn .desktop files, and the voice plays through GStreamer. Wayland doesn’t let apps float on top, so the face sneaks through XWayland instead.
Bugs that were lowkey unhinged
This one was actually wild. On speakers, E.V. would hear its own voice, think I was interrupting, transcribe itself and then reply to itself. Forever. Main character behaviour, but no.
Three fixes, stacked:
Compare against itself, not the room. Interrupting used to mean “louder than background noise”, and speakers win that every time. Now you have to be louder than E.V.’s own voice coming back through the mic.
It learns what I sound like. A small voiceprint learns my voice and E.V.‘s voice through the speakers, and keeps adapting the more you use it. If the audio sounds like E.V., it’s ignored. It’s not face ID for voices, it just tells “me” apart from “the speakers”.
It checks the words. If what it just heard matches what it just said, it gets dropped. This is the one that makes the loop actually impossible instead of just less likely.All of it is pinned in tests so it can’t sneak back. The suite is at 866 tests now, all offline. That’s the update fr.
yk i gotta come clean. half of this major update was vibe coded. forgive me. but the other half was done by me.
ALSO THIS DEVLOG is not vibecoded. it took too long.
This update was all about letting E.V. actually take over the computer, not just open apps.
What’s new
Bugs I hit
Just Spent 8 Hours on EV, Creating And Refactoring. to finally achieve as close as i can get towards the real thing with the resources that i was allowed.
It is fully controlled via Voice ( BUT can be switched to text, if necessary). it can do advanced tasks like open Apps, Create Files, And Much more.
All you need is a Groq or Gemini API key. and it consumes a maximum of 200MB RAM. I couldn’t just use an LLM for this purpose as I’m working with a PC that has 4GB RAM.
AS OF NOW, this is a terminal program. but soon this will be much bigger. it will become a full scale app with enjoyable UI/UX Design and an avatar for EV