Pocket Rolling Stone

The Pocket Rolling Stone is a small handheld device that lets you feel a virtual ball rolling and sliding inside a tube that does not physically exist. You tilt it, and a synthesized marble runs from one end to the other, hits the wall, and rolls back. Nothing moves inside. The sensation is generated entirely in firmware on an ESP32-C6, from tilt sensed by a BNO085 IMU.

It is a reproduction of a haptic illusion described by Hsin-Yun Yao and Vincent Hayward in An Experiment on Length Perception with a Virtual Rolling Stone (Eurohaptics 2006), where people could estimate the length of a virtual tube purely from the rolling sensation, apparently using an internal model of gravity. The project was sparked at the workshop held in memoriam of Vincent Hayward, where it became clear that essentially one working set of the original demo was left, worth rebuilding on modern, minimal hardware. It sits in the same family as the lab’s 3D printed haptic illusions and the broader question of why touch has no museum of illusions.

A 1 kHz physics loop simulates three modes (rolling like a solid sphere, sliding with Coulomb friction, and a 3D box of three marbles of different mass), and the ball’s motion is rendered as a real-time vibration. The same signed haptic signal drives two completely different output stages, selected by a single build flag:

  • I2S audio path: an Adafruit ESP32-C6 Feather plus a MAX98357A amplifier driving a TITAN Haptics actuator, streaming a position-indexed wavetable at 22050 Hz.
  • H-bridge path: a Microbots CodeCell C6 Drive board (onboard IMU and H-bridge) driving a motor directly through PWM, with no amplifier at all. This is the build that was actually assembled into a small handheld unit; the I2S path was validated on the bench.

A Python companion app connects over USB serial or BLE to visualize and tune the simulation live.

A direction I want to explore next: rendering a localizable impact along the tube, so you feel where the virtual ball strikes, drawing on Miller et al., Sensing with tools extends somatosensory processing beyond the body, Nature 2018.

This is an ongoing personal side project, not a product. The full story is documented in two build posts:

The firmware and companion app are open source at github.com/Leicas/esp32-ball.

Antoine Weill--Duflos
Antoine Weill--Duflos
Head of Technology and Applications

My research interests include haptic, mechatronics, micro-robotic and hci.