Exercise: Empathetic Machine Design

The main objective of this exercise is to design and program a Webots robot model implementing a kinetic sculpture which can evoke a empathetic response. The focus this time is on reflecting carefully on how form and movement can be used deliberately to provoke an emotional experience.


After this exercise, you should be able to:

  1. Develop a concept for a intuitive, emotional expression which can be conveyed through form and movement.

  2. Formulate a division of movement goals among programmed movement, human performance, and passive physical dynamics.

  3. Design a kinetic sculptural form using rigid bodies and joints.

  4. Manipulate and extend a kinematic description of a rigid body system.

  5. Attach actuators to simulated joints.

  6. Manipulate dynamic properties of a rigid body system, including mass and friction.

  7. Reflect on a expressive gestural outcome and refine and practice the performance.

Reference Guides

Please review the following reference guides as needed:


Many sample Webots worlds are included in the reference projects in Webots.zip described under Webots Robot Simulator Examples. You are welcome to use one as a starting point, but please note this in your documentation.

Prelude: Sketches

This will be due for review in the class prior to the assignment due date.

Please bring a paper or digital sketch of a device you will model and program in Webots. It should be not too complex; needs to be rigid-body; may include both unactuated joints; needs at least one actuated joint; may be fixed or free; may be solo or have props.

General Recommendations

  1. Start by considering a visceral, emotional response you would like to experience yourself. What kind of shapes and movements would convey that to you?

  2. Start with careful paper sketches, including a careful kinematic diagram with the joint axes and body coordinate systems.

  3. Stick with hinge joints (pivots) to start; other joint types can come later (e.g. linear sliding joints).

  4. Choose a convenient ‘reference pose’ in which all joints are at a neutral position. The work will be simpler if this is as axis-aligned as possible.

  5. The Webots native units are meters. Shape objects can be scaled but it is simplest to design in meters.

  6. Explore the existing models to see if one is close to your kinematic design and could be modified.

  7. Build and test a model incrementally. It is much easier to fix coordinate systems and parameter vectors in stages.

  8. Use basic geometric forms to work out the kinematics, dynamics, and contact models. The visual shape and rendering properties can be detailed later if desired.

  9. Parameters can be adjusted while the simulator is running. But I highly recommend you get in the habit of resetting the simulation state before saving any world changes in order to preserve the accuracy of the initial conditions.

  10. A physical structure with rich dynamics may not need much motion programming, as even simple actuation processes might activate the system by exciting the dynamics. E.g. the sample controller code just applies a periodic movement via the motor. This could be elaborated by coupling the movement to the sensor to respond to proximal objects.


  1. A paragraph briefly describing your objectives and outcomes in a post on the RCP project site, either public or private.

  2. Short video clip (less than 60 seconds) of human and robot performance, submitted as an embedded video. Small .mp4 files may be directly uploaded, or you may embed a third-party streaming service.

  3. Zip file of your Webots project. Please give distinctive names to your modified worlds, controllers, and protos (or delete the extraneous ones), and please preserve the folder structure (e.g. worlds/, protos/, controllers/) so it could be unpacked and used.