Skip to content
All robotsEmoji companionsMochi
EMOJI COMPANIONS / ORIGINAL COMPANION

MochiThe original desk companion.

Mochi brings a display, microphone, speaker and expressive servo into one friendly assembly. It is a useful place to understand the virtual robot API and plan an interactive robot's parts and power paths.

Includes assembly, starter wiring and executable virtual JavaScript.
ASSEMBLY PREVIEW/EMOJI
Mochi · Original companion 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.
9components
19starter connections
0.59 kgestimated component mass
Virtual controllercontrol platform
Mochi · Original companion, an illustrated emoji companions assemblyConcept illustration · inspect actual geometry above.
A COMPLETE STARTING POINT

Get to know
what's inside.

The original display, microphone, speaker and servo example. All 9 components and 19 starter connections remain editable in your own project.

Interaction conceptsVirtual API learningAudio and display layouts
View the included component types
  • Emoji enclosure
  • 2S battery · 2.2 Ah
  • 5 V buck regulator
  • Robot controller
  • AI compute module
  • Emoji OLED display
  • MEMS microphone
  • Mini speaker
  • Position servo
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

Run the starter face loop and watch its expression log.

02

Try a change

Inspect power, shared ground and servo PWM connections.

03

Compare and learn

Plan microphone and speaker placement while keeping the current text-event audio limits in view.

emoji-classic.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

Working expression code, wired power and approximate servo power. The enclosure stays a rigid assembly.

  • 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

Vision · ESP32-S3

Camera, display and audio planning with a separate virtual AI host.

ESP32-S3 + AI moduleExpression & servo preview
FROM AN IDEA TO AN ASSEMBLY

Make Mochi your own.

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

Open Mochi in the workbench