> ## Documentation Index
> Fetch the complete documentation index at: https://docs.medera.info/llms.txt
> Use this file to discover all available pages before exploring further.

# Neurobehavioral Construct Computer

> 15 named neurobehavioral constructs across 5 domains.

`NeurobehavioralConstructComputer.compute_all_constructs(facial_features, vocal_features, assessments, context)` returns an `NeurobehavioralActivationProfile` containing 15 `ConstructActivation` objects — one per construct — across 5 neurobehavioral domains.

## Domain map

<Frame>
  <svg viewBox="0 0 720 500" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="medera/rdoc.svg" style={{ width: '100%', height: 'auto', display: 'block', maxWidth: '780px', margin: '24px auto' }}><defs><pattern id="mdr-dots" x="0" y="0" width="10" height="10" patternUnits="userSpaceOnUse"><circle cx="1" cy="1" r="1" fill="rgba(0,0,0,0.08)" /></pattern></defs><rect x="0" y="0" width="720" height="500" fill="#ffffff" /><rect x="0" y="0" width="720" height="32" fill="#141413" /><circle cx="14" cy="16" r="3" fill="#ff5f57" /><circle cx="26" cy="16" r="3" fill="#febc2e" /><circle cx="38" cy="16" r="3" fill="#28c840" /><text x="54" y="20" fill="#9a9893" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="11" fontWeight="500">medera/rdoc.svg</text><text x="706" y="20" textAnchor="end" fill="#9a9893" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10">15 constructs · 5 domains</text><rect x="0" y="32" width="720" height="468" fill="#fafaf6" /><rect x="0" y="32" width="720" height="468" fill="url(#mdr-dots)" /><rect x="0.5" y="0.5" width="719" height="499" fill="none" stroke="#141413" strokeOpacity="0.18" /><text x="360.0" y="56" textAnchor="middle" fill="#141413" fontFamily="Inter, sans-serif" fontSize="15" fontWeight="600">Neurobehavioral Construct Computer</text><text x="360.0" y="76" textAnchor="middle" fill="#5c5c5a" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="11">15 constructs across 5 domains · zero overlap</text><rect x="44.0" y="110" width="120.0" height="38" fill="#76a1fc" stroke="#4f7be0" strokeWidth="1" /><text x="104.0" y="134" textAnchor="middle" fill="#ffffff" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="700">Negative valence</text><rect x="44.0" y="160" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="104.0" y="180" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Acute threat</text><text x="104.0" y="194" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">fear</text><rect x="44.0" y="216" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="104.0" y="236" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Potential threat</text><text x="104.0" y="250" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">anxiety</text><rect x="44.0" y="272" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="104.0" y="292" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Sustained threat</text><rect x="172.0" y="110" width="120.0" height="38" fill="#76a1fc" stroke="#4f7be0" strokeWidth="1" /><text x="232.0" y="134" textAnchor="middle" fill="#ffffff" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="700">Positive valence</text><rect x="172.0" y="160" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="232.0" y="180" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Reward responsiveness</text><rect x="172.0" y="216" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="232.0" y="236" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Reward anticipation</text><rect x="172.0" y="272" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="232.0" y="292" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Satiation</text><rect x="300.0" y="110" width="120.0" height="38" fill="#76a1fc" stroke="#4f7be0" strokeWidth="1" /><text x="360.0" y="134" textAnchor="middle" fill="#ffffff" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="700">Cognitive systems</text><rect x="300.0" y="160" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="360.0" y="180" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Attention</text><rect x="300.0" y="216" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="360.0" y="236" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Working memory</text><rect x="300.0" y="272" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="360.0" y="292" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Executive</text><text x="360.0" y="306" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">function</text><rect x="428.0" y="110" width="120.0" height="38" fill="#76a1fc" stroke="#4f7be0" strokeWidth="1" /><text x="488.0" y="134" textAnchor="middle" fill="#ffffff" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="700">Social processes</text><rect x="428.0" y="160" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="488.0" y="180" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Social communication</text><rect x="428.0" y="216" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="488.0" y="236" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Affiliation</text><text x="488.0" y="250" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">attachment</text><rect x="428.0" y="272" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="488.0" y="292" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">—</text><rect x="556.0" y="110" width="120.0" height="38" fill="#76a1fc" stroke="#4f7be0" strokeWidth="1" /><text x="616.0" y="134" textAnchor="middle" fill="#ffffff" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="700">Arousal & regulatory</text><rect x="556.0" y="160" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="616.0" y="180" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Arousal</text><rect x="556.0" y="216" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="616.0" y="236" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Regulation</text><rect x="556.0" y="272" width="120.0" height="48" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><text x="616.0" y="292" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">Circadian</text><text x="616.0" y="306" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="500">sleep / wake</text></svg>
</Frame>

<CardGroup cols={2}>
  <Card title="Negative Valence" icon="cloud-rain" href="/multimodal/rdoc/negative-valence">
    `acute_threat_fear` · `potential_threat_anxiety` · `sustained_threat`
  </Card>

  <Card title="Positive Valence" icon="sun" href="/multimodal/rdoc/positive-valence">
    `reward_responsiveness` · `reward_anticipation` · `reward_satiation`
  </Card>

  <Card title="Cognitive Systems" icon="brain" href="/multimodal/rdoc/cognitive-systems">
    `attention` · `working_memory` · `executive_function`
  </Card>

  <Card title="Social Processes" icon="users" href="/multimodal/rdoc/social-processes">
    `social_communication` · `affiliation_attachment`
  </Card>
</CardGroup>

<Card title="Arousal & Regulatory Systems" icon="activity" href="/multimodal/rdoc/arousal-regulatory">
  `arousal` · `arousal_regulation` · `circadian_rhythms` · `sleep_wakefulness`
</Card>

***

## ConstructActivation \`\`\`python

@dataclass
class ConstructActivation: name: str # e.g. "potential\_threat\_anxiety" score: float # 0–1 activation confidence: float # 0–1 calibrated contributors: List\[Dict] # \[{feature, value, contribution}] interpretation: str # clinical text domain: str # neurobehavioral domain low\_threshold: float = 0.3 high\_threshold: float = 0.7 def get\_severity(self) -> str: # "low"

\| "moderate" | "high" |

````Severity bands: theme={"system"}

| Score | Severity |
| :--- | :--- |
| `< 0.3` | low |
| `0.3 – 0.7` | moderate |
| `≥ 0.7` | high |

## Profile schema ```json
{ "constructs": [ { "name": "potential_threat_anxiety", "domain": "negative_valence", "score": 0.74, "confidence": 0.81, "severity": "high", "interpretation": "Elevated anxiety markers across vocal F0, jitter, and facial stress.", "contributors": [ {"feature": "f0_mean", "value": 218.0, "contribution": 0.31}, {"feature": "jitter", "value": 1.4, "contribution": 0.22}, {"feature": "vocal_anxiety_index", "value": 0.66, "contribution": 0.18}, {"feature": "stress_index", "value": 62.0, "contribution": 0.15}, {"feature": "hrv_lf_hf_ratio", "value": 2.1, "contribution": 0.14} ] } ]
}

````

## Endpoint \`\`\`

POST /api/multimodal-therapy/analyze-session

\`\`\` The neurobehavioral profile is included in the canonical payload at `payload.rdoc.constructs`.

***

## What's next

<CardGroup cols={2}>
  <Card title="Vocal Acoustic Engine" icon="waveform-lines" href="/multimodal/vocal/overview">
    Vocal features that drive constructs.
  </Card>

  <Card title="Facial Physiological Engine" icon="eye" href="/multimodal/facial/overview">
    Facial features that drive constructs.
  </Card>

  <Card title="Architecture" icon="diagram-project" href="/multimodal/architecture">
    Pipeline deep dive.
  </Card>

  <Card title="Co-Therapy Agent" icon="users" href="/agentic/agents/co-therapy">
    Agent-level documentation.
  </Card>
</CardGroup>
