Vibeleaderboard
Index / tool
Visit github.com
Category
AI Tools
Rank
No. 1442Tools index

Previous survey · No. 1448 ·

Pricing
Open Source
Type
TOOL
Builder
openai
GitHub
196 stars
Date

About

Reference hardware project for a physical AI assistant — illuminates a mirror with ambient info and runs voice interactions.

What it does

Reflect turns spoken lighting requests into changes on a networked color bulb. An ESP32 device captures and compresses microphone audio, exchanges audio and control messages with the Realtime API over WebRTC, then broadcasts power or color packets directly across the local network. Its touch display can mute the microphone and show device state.

Why it's ranked here

This is a compelling, unusually concrete hardware prototype, but not a general assistant. The code closes the full loop from embedded audio capture through realtime model tool calls to physical lighting changes. That makes it instructive for experimentation. Its own warning, narrow device support, and brittle message handling keep it firmly in demo territory.

What's good

The implementation exposes useful embedded patterns instead of hiding everything behind cloud glue. It handles duplex Opus audio, suppresses microphone input while the speaker plays, defines strict lighting tool schemas, and translates model output into native LIFX LAN packets. The wake-word policy and silent command responses also show deliberate interaction design for an ambient device.

Tradeoffs

Hardware support is limited to one ESP32-S3 development kit and one named LIFX bulb. Chunked HTTP responses are unsupported and can restart the device. Large incoming messages may fail JSON parsing. Several paths rely on assertions, and Wi-Fi connection waits indefinitely after limited retries. The repository explicitly disclaims security, reliability, and fitness guarantees.

How to use it well

Use Reflect as a reference for engineers prototyping voice-controlled embedded appliances with ESP-IDF, WebRTC audio, model tool calls, and local device protocols. Start by reproducing the supported hardware setup, then replace the lighting instructions and packet handlers for your own appliance. Do not treat it as production firmware or a finished calendar, music, and general personal-assistant product.

Technical notes+

main/reflect.cpp initializes storage, networking, display, audio, Wi-Fi, LIFX, and the peer loop in sequence. main/webrtc.cpp creates an Opus-only PeerConnection, posts its SDP offer through main/http.cpp, applies the returned answer, and carries Realtime API events over a data channel. main/audio.cpp uses 16 kHz mono PCM with Opus encoding and decoding. main/lifx.cpp emits packed LIFX UDP packets to 255.255.255.255:56700. main/realtimeapi.cpp registers set_light_power and set_color, then dispatches completed function arguments to the bulb. Its add_number_parameter mistakenly writes the maximum value under default instead of adding a maximum field. The same file acknowledges that chunked data-channel messages fail parsing. main/http.cpp rejects chunked HTTP responses and restarts non-Linux builds. dependencies.lock pins ESP-IDF 5.5.0 and targets esp32s3.

Observed

License
MIT License
Primary language
C++
Packaging and install
ESP-IDF firmware project built with CMake and flashed to the device with the ESP-IDF tooling.
Hardware platform
Targets ESP32-S3 and documents the M5Stack CoreS3 ESP32-S3 development kit.
Lighting interface
Sends LIFX LAN protocol packets over UDP broadcast to port 56700.
AI interface
Uses the OpenAI Realtime API with WebRTC audio, a data channel, and function tools.
Audio format
Uses 16 kHz mono audio with Opus encoding and decoding.

Read from README.md, main/http.cpp, main/lifx.cpp, main/wifi.cpp, main/audio.cpp, main/webrtc.cpp, main/display.cpp, main/reflect.cpp, main/realtimeapi.cpp, LICENSE, CMakeLists.txt, partitions.csv, dependencies.lock, sdkconfig.defaults, main/reflect.hpp.

What it can do

  • Display ambient information on illuminated mirror

    Data feeds or information sourcesVisual display on mirror surface

  • Process voice commands

    Spoken user requestsVoice responses or actions

  • Conduct voice conversations

    User speech inputAI-generated spoken responses

  • Control mirror illumination

    System commands or user preferencesAdjusted lighting on mirror

  • Run AI assistant interactions

    User queries and requestsAI-powered responses and assistance

Tags

openaihardwareassistantvoiceiot

Tech Stack

C++CMake

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.