{"id":2245,"date":"2026-04-06T15:03:00","date_gmt":"2026-04-06T15:03:00","guid":{"rendered":"https:\/\/blogs.consentplace.com\/en\/?p=2245"},"modified":"2026-03-30T10:59:27","modified_gmt":"2026-03-30T10:59:27","slug":"under-the-hood-of-emotional-dynamics","status":"publish","type":"post","link":"https:\/\/blogs.consentplace.com\/en\/consent\/under-the-hood-of-emotional-dynamics\/","title":{"rendered":"Under the hood of Emotional Dynamics."},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.consentplace.com\/live-demo\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"514\" src=\"https:\/\/blogs.consentplace.com\/en\/wp-content\/uploads\/2026\/04\/Screenshot-2026-03-28-at-12.06.04-PM-1024x514.png\" alt=\"\" class=\"wp-image-2249\" srcset=\"https:\/\/blogs.consentplace.com\/en\/wp-content\/uploads\/2026\/04\/Screenshot-2026-03-28-at-12.06.04-PM-1024x514.png 1024w, https:\/\/blogs.consentplace.com\/en\/wp-content\/uploads\/2026\/04\/Screenshot-2026-03-28-at-12.06.04-PM-300x151.png 300w, https:\/\/blogs.consentplace.com\/en\/wp-content\/uploads\/2026\/04\/Screenshot-2026-03-28-at-12.06.04-PM-768x385.png 768w, https:\/\/blogs.consentplace.com\/en\/wp-content\/uploads\/2026\/04\/Screenshot-2026-03-28-at-12.06.04-PM-1536x771.png 1536w, https:\/\/blogs.consentplace.com\/en\/wp-content\/uploads\/2026\/04\/Screenshot-2026-03-28-at-12.06.04-PM-1568x787.png 1568w, https:\/\/blogs.consentplace.com\/en\/wp-content\/uploads\/2026\/04\/Screenshot-2026-03-28-at-12.06.04-PM.png 1722w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\" \/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n<title>What Happens Inside the Machine: The Raw Interaction Stream Explained. &ndash; Official Blog<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&#038;family=DM+Serif+Display:ital@0;1&#038;display=swap\" rel=\"stylesheet\" \/>\n<style>\n  :root {\n    --orange: #FF6B35;\n    --orange-dark: #E8521A;\n    --orange-light: #fff3ee;\n    --dark: #1a1a1a;\n    --mid: #444;\n    --light: #888;\n    --border: #e8e8e8;\n    --bg: #ffffff;\n    --code-bg: #111;\n    --code-text: #FF6B35;\n    --code-dim: #666;\n    --code-bright: #e8e8e8;\n  }\n\n  * { box-sizing: border-box; margin: 0; padding: 0; }\n\n  body {\n    font-family: 'DM Sans', sans-serif;\n    color: var(--dark);\n    background: var(--bg);\n    line-height: 1.7;\n    font-size: 17px;\n  }\n\n  \/* NAV *\/\n  nav {\n    border-bottom: 1px solid var(--border);\n    padding: 18px 40px;\n    display: flex;\n    align-items: center;\n    gap: 12px;\n  }\n  nav img { height: 32px; }\n  nav span { font-size: 13px; color: var(--light); margin-left: 4px; }\n\n  \/* LAYOUT *\/\n  .post-container {\n    max-width: 780px;\n    margin: 0 auto;\n    padding: 60px 24px 100px;\n  }\n\n  \/* LABEL *\/\n  .label {\n    display: inline-block;\n    font-size: 11px;\n    font-weight: 600;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    color: var(--orange);\n    border: 1px solid var(--orange);\n    border-radius: 3px;\n    padding: 3px 10px;\n    margin-bottom: 20px;\n  }\n\n  h1 {\n    font-family: 'DM Serif Display', serif;\n    font-size: clamp(28px, 5vw, 44px);\n    line-height: 1.15;\n    color: var(--dark);\n    margin-bottom: 24px;\n    max-width: 700px;\n  }\n\n  .meta {\n    font-size: 13px;\n    color: var(--light);\n    margin-bottom: 48px;\n    padding-bottom: 32px;\n    border-bottom: 1px solid var(--border);\n  }\n  .meta strong { color: var(--mid); }\n\n  \/* EXEC SUMMARY *\/\n  .exec-summary {\n    background: var(--dark);\n    color: #fff;\n    border-radius: 8px;\n    padding: 32px 36px;\n    margin-bottom: 56px;\n  }\n  .exec-summary .es-label {\n    font-size: 10px;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    color: var(--orange);\n    font-weight: 700;\n    margin-bottom: 14px;\n  }\n  .exec-summary p {\n    font-size: 18px;\n    line-height: 1.65;\n    color: #e8e8e8;\n  }\n  .exec-summary strong { color: #fff; }\n\n  \/* SECTION HEADINGS *\/\n  .section-label {\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    color: var(--light);\n    margin-bottom: 8px;\n    margin-top: 60px;\n  }\n\n  h2 {\n    font-family: 'DM Serif Display', serif;\n    font-size: 28px;\n    color: var(--dark);\n    margin-bottom: 20px;\n    line-height: 1.25;\n  }\n\n  h3 {\n    font-size: 16px;\n    font-weight: 700;\n    color: var(--dark);\n    margin-top: 32px;\n    margin-bottom: 12px;\n  }\n\n  p { margin-bottom: 18px; }\n  a { color: var(--orange); }\n\n  \/* TERMINAL BLOCK *\/\n  .terminal {\n    background: #0e0e0e;\n    border-radius: 10px;\n    margin: 32px 0;\n    overflow: hidden;\n    box-shadow: 0 8px 32px rgba(0,0,0,0.18);\n  }\n  .terminal-bar {\n    background: #1e1e1e;\n    padding: 10px 16px;\n    display: flex;\n    align-items: center;\n    gap: 7px;\n    border-bottom: 1px solid #333;\n  }\n  .terminal-bar .dot {\n    width: 11px; height: 11px;\n    border-radius: 50%;\n  }\n  .dot-red { background: #ff5f57; }\n  .dot-yellow { background: #ffbd2e; }\n  .dot-green { background: #28c840; }\n  .terminal-bar .title {\n    font-family: monospace;\n    font-size: 12px;\n    color: #666;\n    margin-left: 8px;\n    letter-spacing: 0.05em;\n  }\n  .terminal-body {\n    padding: 24px 28px;\n    font-family: 'Courier New', monospace;\n    font-size: 13px;\n    line-height: 1.9;\n    color: var(--code-bright);\n  }\n  .terminal-body .dim { color: #e0e0e0; }\n  .terminal-body .orange { color: var(--orange); font-weight: 600; }\n  .terminal-body .green { color: #4ec94e; }\n  .terminal-body .blue { color: #79b8ff; }\n  .terminal-body .yellow { color: #e3c07a; }\n  .terminal-body .separator {\n    color: #333;\n    letter-spacing: 0.05em;\n    display: block;\n    margin: 6px 0;\n  }\n  .terminal-body .header-line {\n    color: var(--orange);\n    font-weight: 700;\n    font-size: 13px;\n  }\n\n  \/* ANNOTATION BLOCK *\/\n  .annotation {\n    display: flex;\n    gap: 16px;\n    background: var(--orange-light);\n    border-left: 3px solid var(--orange);\n    border-radius: 0 8px 8px 0;\n    padding: 18px 20px;\n    margin: -8px 0 28px;\n    font-size: 14px;\n    line-height: 1.6;\n    color: var(--mid);\n  }\n  .annotation .ann-icon {\n    font-size: 20px;\n    flex-shrink: 0;\n    margin-top: 1px;\n  }\n  .annotation strong { color: var(--dark); }\n\n  \/* STEP FLOW *\/\n  .step-flow {\n    counter-reset: steps;\n    list-style: none;\n    margin: 28px 0 36px;\n  }\n  .step-flow li {\n    counter-increment: steps;\n    display: flex;\n    gap: 18px;\n    align-items: flex-start;\n    padding: 18px 0;\n    border-bottom: 1px solid var(--border);\n    font-size: 16px;\n  }\n  .step-flow li:last-child { border-bottom: none; }\n  .step-flow li::before {\n    content: counter(steps);\n    width: 32px;\n    height: 32px;\n    background: var(--dark);\n    color: var(--orange);\n    font-family: 'DM Serif Display', serif;\n    font-size: 17px;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    margin-top: 1px;\n  }\n  .step-flow .sf-text strong {\n    display: block;\n    font-weight: 600;\n    margin-bottom: 3px;\n    color: var(--dark);\n  }\n  .step-flow .sf-text span { color: var(--light); font-size: 14px; }\n\n  \/* DYAD PILL ROW *\/\n  .dyad-row {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    margin: 24px 0 32px;\n  }\n  .dyad-pill {\n    border: 1.5px solid var(--border);\n    border-radius: 20px;\n    padding: 6px 16px;\n    font-size: 13px;\n    font-weight: 500;\n    color: var(--mid);\n    transition: all 0.15s;\n  }\n  .dyad-pill.active {\n    background: var(--orange);\n    color: #fff;\n    border-color: var(--orange);\n    font-weight: 700;\n  }\n  .dyad-pill.secondary {\n    background: var(--orange-light);\n    border-color: var(--orange);\n    color: var(--orange-dark);\n  }\n\n  \/* STAT ROW *\/\n  .stat-row {\n    display: grid;\n    grid-template-columns: 1fr 1fr 1fr;\n    gap: 14px;\n    margin: 28px 0;\n  }\n  @media (max-width: 580px) { .stat-row { grid-template-columns: 1fr 1fr; } }\n  .stat-box {\n    background: var(--orange-light);\n    border-radius: 8px;\n    padding: 18px 18px;\n  }\n  .stat-box .sb-value {\n    font-family: 'DM Serif Display', serif;\n    font-size: 30px;\n    color: var(--orange);\n    line-height: 1;\n    margin-bottom: 4px;\n  }\n  .stat-box .sb-label { font-size: 13px; color: var(--mid); line-height: 1.4; }\n\n  \/* SIGNAL TABLE *\/\n  .signal-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 24px 0 32px;\n    font-size: 14px;\n  }\n  .signal-table th {\n    background: var(--dark);\n    color: #fff;\n    padding: 10px 14px;\n    text-align: left;\n    font-size: 11px;\n    font-weight: 600;\n    letter-spacing: 0.09em;\n    text-transform: uppercase;\n  }\n  .signal-table th:first-child { border-radius: 6px 0 0 0; }\n  .signal-table th:last-child { border-radius: 0 6px 0 0; }\n  .signal-table td {\n    padding: 11px 14px;\n    border-bottom: 1px solid var(--border);\n    color: var(--mid);\n    vertical-align: top;\n  }\n  .signal-table tr:last-child td { border-bottom: none; }\n  .signal-table td:first-child { font-weight: 600; color: var(--dark); }\n  .signal-table .tag {\n    display: inline-block;\n    background: var(--orange-light);\n    color: var(--orange-dark);\n    font-size: 11px;\n    font-weight: 700;\n    padding: 2px 8px;\n    border-radius: 3px;\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n  }\n\n  blockquote {\n    border-left: 3px solid var(--orange);\n    padding: 16px 24px;\n    margin: 32px 0;\n    font-size: 19px;\n    font-family: 'DM Serif Display', serif;\n    font-style: italic;\n    color: var(--dark);\n    line-height: 1.5;\n  }\n  blockquote cite {\n    display: block;\n    margin-top: 10px;\n    font-family: 'DM Sans', sans-serif;\n    font-size: 12px;\n    font-style: normal;\n    font-weight: 600;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    color: var(--light);\n  }\n\n  \/* CTA BOX *\/\n  .cta-box {\n    background: linear-gradient(135deg, var(--dark) 0%, #2d2d2d 100%);\n    border-radius: 10px;\n    padding: 40px;\n    margin-top: 60px;\n    text-align: center;\n  }\n  .cta-box h3 {\n    font-family: 'DM Serif Display', serif;\n    font-size: 26px;\n    color: #fff;\n    font-weight: 400;\n    margin-bottom: 12px;\n    margin-top: 0;\n  }\n  .cta-box p { color: #aaa; font-size: 15px; margin-bottom: 28px; }\n  .cta-box a.btn {\n    display: inline-block;\n    background: var(--orange);\n    color: #fff;\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 15px;\n    padding: 13px 28px;\n    border-radius: 6px;\n    margin: 6px 8px;\n    transition: opacity 0.15s;\n  }\n  .cta-box a.btn:hover { opacity: 0.85; }\n  .cta-box a.btn.secondary {\n    background: transparent;\n    border: 1.5px solid #555;\n    color: #ccc;\n  }\n  .cta-box a.btn.secondary:hover { border-color: #aaa; color: #fff; }\n\n  \/* REFS *\/\n  .references {\n    margin-top: 60px;\n    padding-top: 32px;\n    border-top: 1px solid var(--border);\n    font-size: 13px;\n    color: var(--light);\n  }\n  .references h3 {\n    font-size: 12px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: var(--light);\n    margin-bottom: 14px;\n    margin-top: 0;\n  }\n  .references ul { padding-left: 20px; }\n  .references li { margin-bottom: 8px; line-height: 1.5; }\n  .references a { color: var(--orange); text-decoration: none; }\n\n  \/* BOTTOM NAV *\/\n  .bottom-nav {\n    max-width: 780px;\n    margin: 0 auto;\n    padding: 32px 24px 60px;\n    display: flex;\n    justify-content: space-between;\n    font-size: 14px;\n    border-top: 1px solid var(--border);\n    gap: 20px;\n    flex-wrap: wrap;\n  }\n  .bottom-nav a { color: var(--orange); text-decoration: none; }\n  .bottom-nav .nav-label {\n    font-size: 11px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: var(--light);\n    display: block;\n    margin-bottom: 4px;\n  }\n<\/style>\n<\/head>\n<body>\n<div class=\"post-container\">\n\n  <div class=\"label\">Under the Hood<\/div>\n\n  <h1>What Happens Inside the Machine: The Raw Interaction Stream Explained.<\/h1>\n\n  \n\n  <!-- EXEC SUMMARY -->\n  <div class=\"exec-summary\">\n    <div class=\"es-label\">Executive Summary<\/div>\n    <p>Most AI systems give you an answer. They hide everything else.<\/p>\n    <p style=\"margin-top:14px;\">ConsentPlace shows you the full picture. The <strong>Raw Interaction Stream<\/strong> &mdash; accessible directly in the live demo &mdash; reveals every decision the Emotional Dynamics engine makes, in real time, as the conversation unfolds.<\/p>\n    <p style=\"margin-top:14px;\">This post walks you through what you&#8217;re seeing, and why it matters.<\/p>\n  <\/div>\n\n  <!-- SECTION 1 -->\n  <div class=\"section-label\">The Feature<\/div>\n  <h2>A Window Into the Engine<\/h2>\n\n  <p>In the <a href=\"https:\/\/www.consentplace.com\/live-demo\" target=\"_blank\" rel=\"noopener noreferrer\">ConsentPlace live demo<\/a>, a small <strong>&gt;_<\/strong> button sits in the top-right corner of the interface. Click it, and a terminal-style console opens &mdash; the Raw Interaction Stream.<\/p>\n\n  <p>This is not a log file. It is not a debug panel for engineers. It is a real-time feed of every signal the Emotional Dynamics engine is processing: persona loading, emotion detection, dyad formation, playbook routing, tone adaptation &mdash; all of it, rendered live, as each message is exchanged.<\/p>\n\n  <p>It is, in essence, the nervous system of the conversation made visible.<\/p>\n\n  <!-- TERMINAL: PERSONA LOADING -->\n  <div class=\"section-label\">Stream: Phase 1<\/div>\n  <h2>Persona Loading &mdash; Before the First Word<\/h2>\n\n  <p>The stream begins before the user types anything. The engine loads all possible personas for all possible language and country configurations simultaneously &mdash; a preparation step that ensures zero latency when the actual conversation starts.<\/p>\n\n  <div class=\"terminal\">\n    <div class=\"terminal-bar\">\n      <div class=\"dot dot-red\"><\/div>\n      <div class=\"dot dot-yellow\"><\/div>\n      <div class=\"dot dot-green\"><\/div>\n      <div class=\"title\">Raw console stream &mdash; Persona loading<\/div>\n    <\/div>\n    <div class=\"terminal-body\">\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">student<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">fr_be<\/span><br\/>\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">student<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">fr_fr<\/span><br\/>\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">student<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">en_us<\/span><br\/>\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">professional<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">en_us<\/span><br\/>\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">elderly<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">en_us<\/span><br\/>\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">elderly<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">fr_be<\/span><br\/>\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">professional<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">fr_be<\/span><br\/>\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">elderly<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">fr_fr<\/span><br\/>\n      <span class=\"dim\">Persona charg&eacute;:<\/span> <span class=\"orange\">professional<\/span> <span class=\"dim\">pour<\/span> <span class=\"blue\">fr_fr<\/span><br\/>\n      <span class=\"separator\">======================================================================<\/span>\n      <span class=\"header-line\">  POC EmpAssist v34 &ndash; Freddy&#8217;s Emotional Dynamics Framework<\/span><br\/>\n      <span class=\"header-line\">  Context Memory | Enhanced Logging | 24 Dyads | Playbook CTAs<\/span>\n      <span class=\"separator\">======================================================================<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"annotation\">\n    <div class=\"ann-icon\">&#128269;<\/div>\n    <div><strong>What you&#8217;re seeing:<\/strong> Three persona archetypes (student, professional, elderly) &times; three locale configurations (fr_fr, fr_be, en_us) = 9 contextual profiles loaded in parallel. The engine is ready to serve any combination before the user selects their profile. This is pre-emptive empathy at the infrastructure level.<\/div>\n  <\/div>\n\n  <p>Once the user selects their configuration &mdash; in this demo: <strong>French language, France, elderly persona<\/strong> &mdash; the engine locks in:<\/p>\n\n  <div class=\"terminal\">\n    <div class=\"terminal-bar\">\n      <div class=\"dot dot-red\"><\/div><div class=\"dot dot-yellow\"><\/div><div class=\"dot dot-green\"><\/div>\n      <div class=\"title\">Raw console stream &mdash; Session configuration<\/div>\n    <\/div>\n    <div class=\"terminal-body\">\n      <span class=\"dim\">Langue:<\/span> <span class=\"orange\">fr<\/span> &nbsp;|&nbsp; <span class=\"dim\">Pays:<\/span> <span class=\"orange\">fr<\/span> &nbsp;|&nbsp; <span class=\"dim\">Persona:<\/span> <span class=\"orange\">elderly (74 ans)<\/span><br\/>\n      <span class=\"dim\">Style:<\/span> <span class=\"yellow\">lent, clair, phrases compl&egrave;tes, vouvoiement &agrave; la Parisienne, mode Versaille<\/span><br\/>\n      <span class=\"dim\">Context:<\/span> <span class=\"green\">Venu sur le site apr&egrave;s avoir vu une publicit&eacute; sur les voitures &eacute;lectriques.<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"annotation\">\n    <div class=\"ann-icon\">&#128269;<\/div>\n    <div><strong>What you&#8217;re seeing:<\/strong> The engine doesn&#8217;t just adjust language. It adjusts <em>register<\/em>: slow pacing, complete sentences, formal Parisian address (&#8220;vouvoiement &agrave; la Parisienne, mode Versaille&#8221;). The arrival context &mdash; an ad about electric vehicles &mdash; is injected into the session memory before the first exchange. The assistant already knows why this user is here.<\/div>\n  <\/div>\n\n  <!-- SECTION 2 -->\n  <div class=\"section-label\">Stream: Phase 2<\/div>\n  <h2>Emotion Detection &mdash; Every Message, Every Time<\/h2>\n\n  <p>After every user message, the stream shows the full emotion analysis output &mdash; raw JSON &mdash; before the assistant formulates its reply. This is the core of the Emotional Dynamics engine at work.<\/p>\n\n  <div class=\"terminal\">\n    <div class=\"terminal-bar\">\n      <div class=\"dot dot-red\"><\/div><div class=\"dot dot-yellow\"><\/div><div class=\"dot dot-green\"><\/div>\n      <div class=\"title\">Raw console stream &mdash; Emotion analysis, message Q2<\/div>\n    <\/div>\n    <div class=\"terminal-body\">\n      <span class=\"dim\">&#8212; Raw emotion v32 response:<\/span><br\/>\n      <span class=\"dim\">{<\/span><br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;primary_emotion&#8221;<\/span>: <span class=\"orange\">&#8220;anticipation&#8221;<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;secondary_emotion&#8221;<\/span>: <span class=\"dim\">null<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;dyad_name&#8221;<\/span>: <span class=\"dim\">null<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;dyad_type&#8221;<\/span>: <span class=\"dim\">null<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;dynamic_pattern&#8221;<\/span>: <span class=\"orange\">&#8220;single&#8221;<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;valence&#8221;<\/span>: <span class=\"green\">0.6<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;arousal&#8221;<\/span>: <span class=\"green\">0.4<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;uncertainty&#8221;<\/span>: <span class=\"yellow\">&#8220;low&#8221;<\/span><br\/>\n      <span class=\"dim\">}<\/span><br\/><br\/>\n      <span class=\"dim\">&#8212; Playbook primary routing:<\/span> <span class=\"orange\">anticipation<\/span><br\/>\n      <span class=\"dim\">&#8212; Emotion Blend v32:<\/span> <span class=\"orange\">anticipation<\/span> <span class=\"dim\">(single) [+0.6\/]<\/span><br\/>\n      <span class=\"dim\">&#8212; Dynamics Analysis v32:<\/span> <span class=\"dim\">dominant=single, trend=stabilizing<\/span><br\/>\n      <span class=\"dim\">&#8212; Dynamics Adaptation v34 (cached):<\/span> <span class=\"yellow\">tone=neutral, pacing=maintain<\/span><br\/>\n      <span class=\"dim\">&#8212; Mode:<\/span> <span class=\"green\">Chitchat<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"annotation\">\n    <div class=\"ann-icon\">&#128269;<\/div>\n    <div><strong>What you&#8217;re seeing:<\/strong> A single emotion detected &mdash; Anticipation &mdash; with no secondary emotion yet. Valence is positive (+0.6), arousal is moderate (0.4). No dyad has formed. The playbook routes to a neutral, steady tone. The engine is in listening mode: gathering, not yet steering.<\/div>\n  <\/div>\n\n  <!-- SECTION 3 -->\n  <div class=\"section-label\">Stream: Phase 3<\/div>\n  <h2>Dyad Formation &mdash; When the Relationship Emerges<\/h2>\n\n  <p>The critical moment arrives when a second emotion compounds with the first. This is when Plutchik&#8217;s dyadic model activates &mdash; and the engine shifts from detection to <em>interpretation<\/em>.<\/p>\n\n  <div class=\"terminal\">\n    <div class=\"terminal-bar\">\n      <div class=\"dot dot-red\"><\/div><div class=\"dot dot-yellow\"><\/div><div class=\"dot dot-green\"><\/div>\n      <div class=\"title\">Raw console stream &mdash; Dyad formation, message Q3<\/div>\n    <\/div>\n    <div class=\"terminal-body\">\n      <span class=\"dim\">&#8212; Raw emotion v32 response:<\/span><br\/>\n      <span class=\"dim\">{<\/span><br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;primary_emotion&#8221;<\/span>: <span class=\"orange\">&#8220;anticipation&#8221;<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;secondary_emotion&#8221;<\/span>: <span class=\"orange\">&#8220;trust&#8221;<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;dyad_name&#8221;<\/span>: <span class=\"green\">&#8220;hope&#8221;<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;dyad_type&#8221;<\/span>: <span class=\"green\">&#8220;secondary&#8221;<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;dynamic_pattern&#8221;<\/span>: <span class=\"orange\">&#8220;reinforcement&#8221;<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;valence&#8221;<\/span>: <span class=\"green\">0.5<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"blue\">&#8220;arousal&#8221;<\/span>: <span class=\"green\">0.4<\/span>,<br\/>\n      &nbsp;&nbsp;<span class=\"dim\">&#8230;<\/span><br\/>\n      <span class=\"dim\">}<\/span><br\/><br\/>\n      <span class=\"dim\">&#8212; Playbook dyad routing:<\/span> <span class=\"green\">hope (secondary)<\/span><br\/>\n      <span class=\"dim\">&#8212; Emotion Blend v32:<\/span> <span class=\"green\">anticipation+trust=hope<\/span> <span class=\"dim\">(reinforcement) [+0.5\/]<\/span><br\/>\n      <span class=\"dim\">&#8212; Dynamics Adaptation v34 (cached):<\/span> <span class=\"yellow\">tone=more_enthusiastic, pacing=accelerate<\/span><br\/>\n      <span class=\"dim\">&#8212; Mode:<\/span> <span class=\"green\">Chitchat<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"annotation\">\n    <div class=\"ann-icon\">&#128269;<\/div>\n    <div><strong>What you&#8217;re seeing:<\/strong> Anticipation + Trust = <strong>Hope<\/strong>. A Plutchik secondary dyad has formed. The dynamic pattern is now &#8220;reinforcement&#8221; &mdash; both emotions are building on each other. The playbook immediately shifts: tone becomes more enthusiastic, pacing accelerates. The assistant leans in. This is not a rule. It is the engine reading the emotional arc of the conversation in real time.<\/div>\n  <\/div>\n\n  <!-- THE 24 DYADS -->\n  <div class=\"section-label\">Foundation<\/div>\n  <h2>The 24 Dyads: What the Engine Is Listening For<\/h2>\n\n  <p>Plutchik&#8217;s psychoevolutionary model identifies 8 primary emotions. In combination, they generate 24 distinct dyads &mdash; each with its own emotional signature, valence, and behavioral implication. The ConsentPlace engine monitors all 24, continuously, across every conversational turn.<\/p>\n\n  <div class=\"dyad-row\">\n    <span class=\"dyad-pill active\">Hope<\/span>\n    <span class=\"dyad-pill secondary\">Optimism<\/span>\n    <span class=\"dyad-pill\">Love<\/span>\n    <span class=\"dyad-pill\">Submission<\/span>\n    <span class=\"dyad-pill\">Awe<\/span>\n    <span class=\"dyad-pill\">Disapproval<\/span>\n    <span class=\"dyad-pill\">Remorse<\/span>\n    <span class=\"dyad-pill\">Contempt<\/span>\n    <span class=\"dyad-pill\">Aggressiveness<\/span>\n    <span class=\"dyad-pill\">Pride<\/span>\n    <span class=\"dyad-pill\">Dominance<\/span>\n    <span class=\"dyad-pill\">Cynicism<\/span>\n    <span class=\"dyad-pill\">Guilt<\/span>\n    <span class=\"dyad-pill\">Envy<\/span>\n    <span class=\"dyad-pill\">Pessimism<\/span>\n    <span class=\"dyad-pill\">Anxiety<\/span>\n    <span class=\"dyad-pill\">Delight<\/span>\n    <span class=\"dyad-pill\">Sentimentality<\/span>\n    <span class=\"dyad-pill\">Curiosity<\/span>\n    <span class=\"dyad-pill\">Despair<\/span>\n    <span class=\"dyad-pill\">Shame<\/span>\n    <span class=\"dyad-pill\">Outrage<\/span>\n    <span class=\"dyad-pill\">Morbidness<\/span>\n    <span class=\"dyad-pill\">Bittersweetness<\/span>\n  <\/div>\n\n  <p>In the demo above, <span style=\"color:var(--orange);font-weight:600;\">Hope<\/span> activated. In a different conversation &mdash; same brand, different user &mdash; <span style=\"color:var(--mid);font-weight:600;\">Remorse<\/span> or <span style=\"color:var(--mid);font-weight:600;\">Cynicism<\/span> might dominate. Each dyad triggers a different playbook. Each playbook adapts tone, pacing, CTA framing, and next-move strategy accordingly.<\/p>\n\n  <!-- SECTION 4 -->\n  <div class=\"section-label\">Signal Breakdown<\/div>\n  <h2>Every Signal the Stream Surfaces<\/h2>\n\n  <table class=\"signal-table\">\n    <thead>\n      <tr>\n        <th>Signal<\/th>\n        <th>What It Measures<\/th>\n        <th>Action Triggered<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td>primary_emotion<\/td>\n        <td>Dominant emotion detected in the message<\/td>\n        <td>Initial playbook routing<\/td>\n      <\/tr>\n      <tr>\n        <td>secondary_emotion<\/td>\n        <td>Compounding emotion forming a dyad<\/td>\n        <td>Dyad activation, deeper playbook<\/td>\n      <\/tr>\n      <tr>\n        <td>dyad_name<\/td>\n        <td>Named emotional state (e.g. Hope, Remorse)<\/td>\n        <td>Specific response strategy unlocked<\/td>\n      <\/tr>\n      <tr>\n        <td>valence<\/td>\n        <td>Positive\/negative orientation (&ndash;1 to +1)<\/td>\n        <td>Tone calibration<\/td>\n      <\/tr>\n      <tr>\n        <td>arousal<\/td>\n        <td>Intensity of emotional engagement (0 to 1)<\/td>\n        <td>Pacing and urgency adjustment<\/td>\n      <\/tr>\n      <tr>\n        <td>dynamic_pattern<\/td>\n        <td>Single, reinforcement, conflict, or transition<\/td>\n        <td>Conversational arc management<\/td>\n      <\/tr>\n      <tr>\n        <td>uncertainty<\/td>\n        <td>Confidence level of the emotion read<\/td>\n        <td>Hedging vs. assertive framing<\/td>\n      <\/tr>\n      <tr>\n        <td>Dynamics Adaptation<\/td>\n        <td>Real-time tone + pacing instruction<\/td>\n        <td>Immediate assistant behavior change<\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n\n  <!-- SECTION 5 -->\n  <div class=\"section-label\">Why It Matters<\/div>\n  <h2>Transparency as a Differentiator<\/h2>\n\n  <p>Every AI assistant adapts. Most adapt invisibly, using heuristics no one can inspect or validate.<\/p>\n\n  <p>ConsentPlace makes the adaptation visible &mdash; not only in the Dashboard metrics (LDP, ECI, DSR), but in the raw signal layer itself. The Raw Interaction Stream is a proof-of-work: every adaptation the assistant makes is traceable to a specific emotional signal, a specific dyad, a specific playbook decision.<\/p>\n\n  <blockquote>\n    The assistant doesn&#8217;t guess. It reads. And the stream shows you exactly what it read.\n  <\/blockquote>\n\n  <p>This matters for enterprise buyers, compliance teams, and CX leaders who need to understand &mdash; and audit &mdash; how their AI is behaving with customers. It matters for brand managers who need to know whether the emotional relationship with their users is strengthening or eroding. And it matters for anyone who has ever wondered what an AI is actually doing when it decides to shift tone mid-conversation.<\/p>\n\n  <div class=\"stat-row\">\n    <div class=\"stat-box\">\n      <div class=\"sb-value\">24<\/div>\n      <div class=\"sb-label\">Plutchik dyads monitored per conversation<\/div>\n    <\/div>\n    <div class=\"stat-box\">\n      <div class=\"sb-value\">8<\/div>\n      <div class=\"sb-label\">Signals extracted per message turn<\/div>\n    <\/div>\n    <div class=\"stat-box\">\n      <div class=\"sb-value\">v34<\/div>\n      <div class=\"sb-label\">Current engine version with context memory<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- SECTION 6 -->\n  <div class=\"section-label\">Try It<\/div>\n  <h2>See the Stream Live<\/h2>\n\n  <p>The Raw Interaction Stream is accessible in the ConsentPlace live demo &mdash; no login, no setup. Open the demo, click the <strong>&gt;_<\/strong> button in the top-right corner of the interface, and watch the engine work in real time.<\/p>\n\n  <p>Try switching personas. Try different entry contexts. Watch how the stream changes &mdash; how quickly a dyad forms, how the playbook routing shifts, how the tone adaptation responds to a single word of frustration or enthusiasm in the user&#8217;s message.<\/p>\n\n  <p>This is not a visualization built for show. It is the actual signal layer the Emotional Dynamics engine runs on.<\/p>\n\n  <!-- CTA -->\n  <div class=\"cta-box\">\n    <h3>The conversation is on the surface.<br\/>The intelligence is in the stream.<\/h3>\n    <p>Open the live demo and click &gt;_ to see it for yourself.<\/p>\n    <a href=\"https:\/\/www.consentplace.com\/en\/dashboard\" class=\"btn\">Open the Dashboard &#8594;<\/a>\n    <a href=\"https:\/\/demov2.consentplace.com\/auto-demo\" class=\"btn secondary\">Full Auto-Demo<\/a>\n    <a href=\"mailto:info@consentplace.com\" class=\"btn secondary\">Contact Us<\/a>\n  <\/div>\n\n  <!-- REFERENCES -->\n  <div class=\"references\">\n    <h3>References &#038; Sources<\/h3>\n    <ul>\n      <li>Plutchik, R. (1980) &mdash; &#8220;A general psychoevolutionary theory of emotion&#8221;<\/li>\n      <li>Plutchik, R. (2001) &mdash; &#8220;The Nature of Emotions.&#8221; <em>American Scientist, 89(4), 344&ndash;350<\/em><\/li>\n      <li><a href=\"https:\/\/blogs.consentplace.com\/en\/business\/roi\/\">How to Measure Emotional Dynamics ROI: The 3 Metrics That Matter<\/a> &mdash; ConsentPlace Blog, March 2026<\/li>\n      <li><a href=\"https:\/\/www.consentplace.com\/en\/dashboard\">ConsentPlace Conversational Intelligence Dashboard (demo)<\/a><\/li>\n    <\/ul>\n  <\/div>\n\n<\/div><!-- \/post-container -->\n\n<div class=\"bottom-nav\">\n  <div>\n    <span class=\"nav-label\">Previous Post<\/span>\n    <a href=\"https:\/\/blogs.consentplace.com\/en\/business\/roi\/\">The Dashboard That Delivers Your Emotional Dynamics ROI &mdash; In Real Time.<\/a>\n  <\/div>\n<\/div>\n\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>What Happens Inside the Machine: The Raw Interaction Stream Explained. &ndash; Official Blog Under the Hood What Happens Inside the Machine: The Raw Interaction Stream Explained. Executive Summary Most AI systems give you an answer. They hide everything else. ConsentPlace shows you the full picture. The Raw Interaction Stream &mdash; accessible directly in the live&hellip; <a class=\"more-link\" href=\"https:\/\/blogs.consentplace.com\/en\/consent\/under-the-hood-of-emotional-dynamics\/\">Continue reading <span class=\"screen-reader-text\">Under the hood of Emotional Dynamics.<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[65,12,67,4,64,70,69,21,57,6],"tags":[7,66,18,25],"class_list":["post-2245","post","type-post","status-publish","format-standard","hentry","category-ai-agent","category-business","category-business-intelligence","category-consent","category-consentboxes","category-conversational-intelligence","category-dashboard","category-marketing","category-new-version","category-tech","tag-consent","tag-consentboxes","tag-custtech","tag-explicit-consent","entry"],"_links":{"self":[{"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/posts\/2245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/comments?post=2245"}],"version-history":[{"count":5,"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/posts\/2245\/revisions"}],"predecessor-version":[{"id":2285,"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/posts\/2245\/revisions\/2285"}],"wp:attachment":[{"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/media?parent=2245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/categories?post=2245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.consentplace.com\/en\/wp-json\/wp\/v2\/tags?post=2245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}