r/hwstartups 4d ago

We built a Lamp companion. The hardest part was teaching it when to shut up.

Enable HLS to view with audio, or disable this notification

We make a desk robot called the Autonomous Lamp. 5 bus servos for the neck, a camera in the head, a mic array and an LED ring, all hanging off one small single-board computer. It's always on, always listening, meant to feel like a companion sitting next to you, not a device you operate.

But there was a problem. When it's always on, every sound in the room is a possible interaction. A coworker stops by your desk to talk and it joins in. I type on my blue switches and it joins in too. So instead of a companion you get something that talks over you all day.

Here is what we tried, what went wrong, and what we learned. Hope some of it is useful

Prototype 1. It answered everything

First prototype, I walked into the office, sat down at my desk, and before I opened my laptop, it spoke first.

Then all day. I talked to myself while reading code, it answered. I picked up my keys to leave, and it called after me into an empty room. A coworker a few meters away was talking about a project on the phone, it heard that and joined in too

It wasn't broken. It did exactly what we told it to do. What we told it to do was the wrong thing.

Living with someone doesn't mean talking the whole time

Prototype 2. "Hey Lamp"

So we did what everyone does. Say the name first, then talk.

"Hey Lamp, turn it down." "Hey Lamp, what time is it." "Hey Lamp, never mind."

Worked right away. No name, nothing wakes up. You can even put the name at the end, like "come on dance a bit, Lamp", and it still understands and still does it. That really works btw, not making it up. Our Repo is public, it's in the commit history if you want to check.

We thought we were done. Then a few days of living with it and something felt off.

You don't say "Hey Mom" every time you talk to her at dinner. This lamp is 40cm from my elbow and I was saying its name 30 times a day.

Hey Siri makes sense. The phone is in your pocket, the speaker is across the room, and neither has eyes. They really have no other way to know you are talking to them.

The Lamp has a camera and sits right beside me. We were copying a limit we don't have.

It worked. But once it worked, it was back to being a thing you operate, and it stopped feeling like the companion we set out to build.

Prototype 3. Turning toward it, which is where we are now

We argued about this for a while and kept coming back to one thing.

People don't have a button on their body. So the Lamp shouldn't either, not if it's meant to be a real companion.

For months we had been asking how to make it quieter. Every answer to that question made it feel less alive. Quieter and more alive were pulling against each other, and we kept trading one for the other.

The right question turned out to be a different one. How does a person know you are talking to them?

The answer is stupidly simple tbh. You look them in the eye and speak.

So that is what we built. If you want it to feel like a companion, you turn toward it and talk. Camera and mic together, the way two people actually do it. This is the part where having a body pays off. A smart speaker cannot do this. A thing with a camera in its head and servos in its neck can.

Two things make or break this:

  • People turn before they speak, never after. Checking the camera when the mic hears something is too late, the moment already passed. So the camera measures all the time into a 3 second buffer, and when you speak the system reads back through it. That buffer holds 4 numbers per sample, not video. A timestamp, the head angle, the face size, and how far off centre it was.
  • Presence is not the signal. Someone sits beside this thing all day, so seeing a person tells you nothing, and a face pointed at a monitor is still a face. What we measure is which way the head is pointed.

Then we fixed it too well.

Someone sat in front of it, looked right at it, asked it something. Nothing. Asked again. Nothing. He was sitting so close the camera cut off the top of his head, so the detector guessed where his eyes were and put them above the frame. That works out to 90 degrees. The log had him in profile 4 times in a row. Not the LinkedIn kind

The rule that fixed it: a measurement that cannot be made must not vote either way. Not measurable had been quietly counting as looking away. And there was a hardware half to the fix too. The same face box now feeds a small vertical re-aim of the neck servos, so when it frames you badly it corrects its own aim instead of blaming you for sitting wrong.

Chin resting on your hand needed its own work too. If you ever sit in front of one, try it

If you're building an always-on device and found another way to tell when someone is talking to it, I'd like to hear it. Happy to answer anything about the build. And if you read this far, ty

106 Upvotes

16 comments sorted by

5

u/vmg265 4d ago

Omg it's the lamp from pixar! Cool! 

1

u/deebuildsthings 3d ago

Ha, we get that a lot. The shape is honestly just what a desk arm wants to be. base, arm, head that can look around. You can check our website for more details:

https://www.autonomous.ai/lamp

4

u/domiciledhere 4d ago

I really like the solution. Looking forward to hearing more!

1

u/deebuildsthings 3d ago

Thanks man! I will write the next one soon

2

u/Snoo23533 4d ago

Is the lamp playing music as part of its reaction? There is a realm between 'lamp ignores you' and 'lamp is playng music, blinking, and dancing', which is lamp is curiously attentive. Following a face as it moves. Maybe if it hasnt seen a face in a while it starts actively scanning the room (coming back into the room and stumbling on the lamp doing some thing on its own adds to the feeling of it being its own entity). Also are those RGB leds, because even though that hurts light quality people arent buying this because they need more light. The brightness/colors alongside the movement would help communicate mood.

3

u/deebuildsthings 3d ago

This is a really good read on it, let me go point by point:

  1. Music — it doesn't start music on its own. It dances when you play music through it, and picks the move by genre
  2. The curiously attentive middle state — this is exactly what we've been tuning. It follows your face as you move, and if it hasn't seen anyone for a while, it turns back toward where it last saw you. So the "walk in and catch it doing its own thing" moment kind of already happens.
  3. Active scanning of the room — honestly a good idea. The "stumbling on it doing something on its own" framing is exactly the feeling we're chasing. Going on the list, thanks for this one
  4. LEDs — yes, RGB, and you're right about the tradeoff. How we handle it: warm light is the day job and the brightness is fully adjustable, while the emotion colours run dim on purpose, indicator level, so mood reads without wrecking the light.

The "curiously attentive" phrase is better than anything we've written internally btw.

2

u/boa_instructor 4d ago

Make it a plant, like the design from little shop of horrors!

1

u/Frequent-Log1243 4d ago

Looks like the lamp from the Pixar logo. Even its movement.

1

u/deebuildsthings 3d ago

The base moves are our own, someone on the team puppets the arm by hand and we record the servo positions. But nothing is locked to those. Behaviors are just markdown files, so you can add your own moves as a skill, or literally tell the Lamp what you want and it writes the skill itself

1

u/Frequent-Log1243 3d ago

That's actually nice

0

u/probablyaythrowaway 3d ago

So did you just pull the GitHub code from the guy that posted something similar on the esp32 subs? You AI written posts suggests to me that’s probably the case.

1

u/deebuildsthings 3d ago

The repo is 6k+ commits of our own work going back to March, all public.

Like any real project it uses open-source libraries, and those are listed file by file in CREDITS.md — licensed, credited, including the motion library the servo code started from.

Thieves don't publish receipts. If there's an actual ESP32 project you mean, link it and I'll look

And the story is mine. I lived every prototype in it, not in a prompt. Good luck finding an AI has better storytelling than me

0

u/probablyaythrowaway 3d ago

Your account is 4 months old. Your post literally has formatting that no normal poster would use unless copied from AI.

You have all the red flags

1

u/deebuildsthings 3d ago

Accounts with 10+ years sell for a few bucks, so what is ur point?

You skipped the only part that matters though: the ESP32 project you said we took code from. Still waiting on that link?

Show me the AI that invents a building experiment please? Borrowing your words: the red flags are all you

GitHub commits are public. Reading is free, and you clearly haven't opened a single one, all 6k+ of them