Close
0%
0%

MiniSoul

A pocket-sized companion with a little inner life. It senses your touch, grows a personality, and shows how it feels.

Similar projects worth following
I have always been fascinated by what makes something feel alive. In my hostel we had cats. They would come to me, purr, rub against my leg and somehow that small act formed a real connection. She would sometimes look for me, sometimes I would look for her. The cat probably had more emotional intelligence than me at that point. I kept wondering why that connection happened. And could it be replicated? MiniSoul is my answer to that. A palm-sized companion robot that tries to form that kind of connection with you. Not through conversation or commands, but through presence and small gestures. The way the cat did. I hope you would love MiniSoul. https://minisoul.thesoulbot.com

MiniSoul is built on the ESP32-S3 SuperMini with a 1-inch OLED display, coin vibration motor, and passive buzzer.

Touch inputs drive the behavioral engine which models personality across six factors: Curiosity, Fear, Joy, Anger, Sadness, Desire. Each interaction affects these factors over time, making the robot's responses feel shaped by its history with you rather than pre-scripted. Every unit develops subtly differently.

Two months in. Hardware foundation complete. Behavioral engine being designed now. One month from a first finished version.

  • Teaching it your touch (and giving the first one away)

    Sritabh Priyadarshia day ago 0 comments

    When I first built the touch classifier, I trained the kNN on data recorded from the very first device. It worked well on that one unit.

    Then I started building the others, in different housings, and the model fell apart. It took me a while to see why. The touch area is copper tape, and on every build the tape ends up sitting a little differently. Slightly different placement, slightly different contact, and the capacitance signal shifts just enough that the data from the first device doesn't hold for the next one.

    I can't sit with every unit, hook it to a laptop, and recollect and retrain by hand. That doesn't scale, and it isn't how I wanted this to work anyway.

    So the last thing I built for this version is on-device touch tuning. You record a few of your own sample touches right on the device, and the kNN improves from them. No laptop, no reflashing. Each MiniSoul calibrates to its own hardware, and to the hand that holds it.

    It felt like the right note to finish on. The behaviour engine already lets each unit drift into its own personality over time. Now even the sensing starts fresh on every one and learns its owner from the first touch.

    I also built it in all the colours now. Seeing the green, yellow and pink ones lined up together and finished, it finally looks like the thing I had in my head four months ago.

    And that's where this version ends. The first MiniSoul goes to my sister, the way I planned from the start. This whole project began with a cat in my hostel that decided, for no reason I could name, to form a connection with me.

    Check more here: https://minisoul.thesoulbot.com

    Here's the 4 months put into 40 seconds

  • Making the updates over the air (OTA)

    Sritabh Priyadarshi06/03/2026 at 15:24 0 comments

    I've been working on MiniSoul with a deadline 10 days out, and I'm falling behind since I'm not getting enough time for it. Every small window of free time, I'm putting toward it.

    Once I hand MiniSoul over, I can't change the hardware, but I can always update the software, as long as I build in the ability to update the firmware. That's what I focused on over the last week.
    I know I won't catch every bug at once, and I might not ship every improvement I want. But this gives me peace of mind.If something breaks, I can fix it with a new release.

    Here's a small visualization of how the flow works, made with Claude which gives a pretty good picture.




    Check how it looks in action.

  • Fitting everything into casing for the first time

    Sritabh Priyadarshi05/20/2026 at 03:29 0 comments

    In my head the idea of fitting component into casing seems one of the easiest compared to other steps and I was horribly wromg with this.

    This definitely was not the easiest step but the delusion of considering it the easiest made it less frustrating when I have to do multiple iterations.


    But finally after like what it felt to be millionth attempt of redisigning saving on spaces, creating space for other electronics



  • Sensing classifier with single input

    Sritabh Priyadarshi05/12/2026 at 17:56 0 comments

    Aggressive tapping, a gentle caress, a deliberate tap. These are emotionally distinct interactions and I wanted the robot to respond to them differently.

    The question was: how much hardware does that actually require?

    I started with the simplest possible input, a single capacitive touch sensor. One sensing point. One time series of capacitance values.

    Then I extracted basic features from each touch event: duration, peak value, mean, minimum, rise rate, fall rate, and area under the curve.

    What I didn't expect was this

    The three touch classes aggressive, caress, tap, separate cleanly in feature space. Especially on rise_rate and fall_rate (log scale). The information was always encoded in the shape of the signal. How fast the capacitance climbs. How fast it falls. How long it lingers.

    A caress is slow in both directions. An aggressive touch hits hard and releases sharply. A tap is brief and decisive.

    Needed such happiness for the recent hard days


  • Behavioural Engine Algo design

    Sritabh Priyadarshi05/09/2026 at 07:01 0 comments

    Defined how the behaviour should affect the personality factors and how the mood would be changed


    Interaction definition affecting personality factors


    For tap


    For Affection

    For Aggression



    Next thing to work on is classifying interaction using KNN along with some refactoring.

View all 5 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates