Research prototype

CARROT DUCK

A web-based AI companion prototype for studying perceived personal recognition.

Project overview

I developed CARROT DUCK to explore when an AI companion’s recollection feels personally meaningful, and when it feels intrusive.

Earlier conversations inform responses expressed through chat and Live2D. A configurable personality and an experimental relationship model guide how the companion engages with the user.

A research dashboard records potential moments of perceived personal recognition (PPR) for examination alongside the user’s response.

Developer demonstration

How an earlier encounter informs a later response

Duck recalls that petting a cat helped the user feel better, then reveals its fox ears in a playful response. You can explore everyday conversation in the live application, or follow the GitHub walkthrough to inspect how a memory informs a generated reply and gesture.

View the project on GitHub ↗

Open the live companion ↗

01 / System overview

System architecture

The system draws on earlier conversations to prepare a reply, which can appear in chat or be presented through the character. This connection makes it possible to explore how remembered context shapes the experience of recognition.

Application overview connecting the interaction interface, dialogue service and presentation, with persistent context and a background contact pathway.
Figure 1. Dialogue generation and character presentation.

02 / Embodied interaction

Dialogue and character performance

Inspired by LPM, Live2D performance follows three conversational modes. The character listens during user input, coordinates expressions and gestures with its spoken reply, and returns to idle between turns.

A qualitative sequence showing input, preparation, playback and completion across conversation, character state and speech. Audio starts the gesture and its end releases the performance.
Figure 2. Coordination within a spoken turn.

03 / Across interactions

Interaction continuity

Selected details can enter memory, while user feedback can influence later approaches. Interaction records allow a recalled detail to be examined alongside the user’s response, connecting the working prototype to the research question.

A cross-turn loop linking a recorded exchange to conditional memory and interaction policy updates, then later context. A separate records branch supports research interpretation.
Figure 3. Conditional memory updates and feedback across interactions.

Current Limitations

Budget and server constraints informed my choice of Live2D. The purchased model offers limited controls, leaving some transitions abrupt. Future work will refine these transitions and explore a more flexible model or a 3D implementation.