Skip to content
All robotsEmoji companionsVision
EMOJI COMPANIONS / ESP32-S3

VisionGive your companion a new perspective.

Vision adds a camera and a separate virtual AI host to an ESP32-S3 companion. Study how observation, expression and control can fit together before choosing the hardware for a connected robot.

Includes assembly, starter wiring and executable virtual JavaScript.
ASSEMBLY PREVIEW/EMOJI
Vision · ESP32-S3 concept illustration; the 3D preview uses the actual preset geometry
Static illustration · loading 3D
Orbit the actual starter assembly. Open the workbench to edit or run it.
10components
22starter connections
0.59 kgestimated component mass
ESP32-S3 + AI modulecontrol platform
Vision · ESP32-S3, an illustrated emoji companions assemblyConcept illustration · inspect actual geometry above.
A COMPLETE STARTING POINT

Get to know
what's inside.

Camera, display and audio planning with a separate virtual AI host. All 10 components and 22 starter connections remain editable in your own project.

Camera-enabled companionsAI observation prototypesHuman–robot interaction studies
View the included component types
  • Emoji enclosure
  • 2S battery · 2.2 Ah
  • 5 V buck regulator
  • ESP32-S3 · virtual controller
  • AI compute module
  • Emoji OLED display
  • MEMS microphone
  • Mini speaker
  • Position servo
  • RGB camera
YOUR FIRST THREE EXPERIMENTS

Build understanding.
One change at a time.

Use the starting assembly to ask better questions about your design. Save a copy, change a parameter and compare what happens.

01

Inspect the design

Inspect the camera's power and data path to the virtual AI host.

02

Try a change

Try a rendered camera observation in the AI workspace with your own provider key.

03

Compare and learn

Change bounded servo targets and display behavior; audio remains a text-event abstraction.

emoji-esp32-s3.jsVIRTUAL API
let previous = '';
function step(robot) {
  robot.drive(0, 0);
  if (robot.brownout || robot.battery.voltage < 6.25) { robot.display('🪫'); return; }
  const face = ['😊', '🤖', '◕ ◕', '😴'][Math.floor(robot.time / 2) % 4];
  robot.display(face);
  robot.servo('servo', 0.45 * Math.sin(robot.time));
  if (face !== previous) { robot.log('Expression:', face); previous = face; }
}

The full, editable starter script is included in the workbench.

KNOW WHAT YOU'RE TESTING

Expression & servo preview

Rendered camera observations and supported AI adapters. Audio parts produce bounded text events, not acoustics.

  • Editable 3D assembly, wiring and code
  • Connection and power diagnostics
  • Generic, uncalibrated component estimates
Read the simulation and fidelity guide

This is a virtual JavaScript environment. It does not emulate ESP-IDF, Arduino firmware or a manufacturer's exact hardware.

KEEP EXPLORING

Another way to build.

View all 16 robots
Emoji companions

Pixel · ESP32 OLED

Compact face, display and expressive servo with 3.3 V GPIO aliases.

ESP32 DevKitExpression & servo preview
Emoji companions

Pocket · ESP32-C3

A lighter desktop companion around a compact C3 board.

ESP32-C3Expression & servo preview
Emoji companions

Mochi · Original companion

The original display, microphone, speaker and servo example.

Virtual controllerExpression & servo preview
FROM AN IDEA TO AN ASSEMBLY

Make Vision your own.

Open the template, inspect the wiring and run its first behavior.

Open Vision in the workbench