Skip to main content
Natural object interaction makes support visible: the hand contacts the product before moving it, and the base reaches the table before the fingers release. This guide uses a speaker on a table to coordinate dialogue, speaking motion, and idle motion. Add these rules for product demonstrations; ordinary conversation does not need them.

1. Prepare a scene where the action is visible

The starting picture should show the hands, speaker, and tabletop, with the speaker within reach. Leave room for the lift and avoid hiding the contact behind the body or table edge. A reference image preserves appearance; it does not establish that the product is already in the scene. Use a model version confirmed to support object references. There is no additional client switch that enables this on every model. Check grip and placement with your actual images.

2. Register the product reference

Replace the URL with your speaker reference image and send this over the session control connection. Keep the ID and visual description consistent. asset.added confirms registration, not successful handling.

3. Assign each prompt its job

Response instructions interpret the request and determine what can be claimed. Speaking motion describe contact, grip, lifting, placement, and release. Idle motion preserve the resulting object and support between replies.

Dialogue: acknowledge the request without claiming completion

Merge these rules into the existing character instructions, replacing any conflicting rule that prohibits product handling. Demonstration and handling do not imply inventory lookup or purchasing capabilities.

Speaking: describe contact and support changes

Extend Motion Rules in the general speaking template with handling and identity rules. Retain Character Context, Current Frame, and the output contract. This is a scenario extension, not a complete session request.

Idle: preserve held or table-supported states

Merge these rules into Motion Rules in the general idle template. Remove conflicting requirements such as returning both hands to the table while one hand is holding the product.

4. Check the generated output

These two segments illustrate an explicit request to pick the speaker up and put it back. For a pickup-only request, end with it held rather than adding placement. Each segment uses <OBJ_0> once at the first mention, without repeating it at the endpoint. Durations are planning values.
If the speaker remains held after speech, idle output preserves that grip. Note singular motion, exactly one item, and no duration.

5. Test three requests

Test “pick up the speaker”, “tell me about it”, and “put it back”, watching the following idle interval each time. Check contact before movement, the same supporting hand during the explanation, and base contact before release. Ask an ordinary question afterward to ensure the character does not fetch it again.