PROTOCOL HELLO

Emit one VET state. Hear one simple renderer respond.

This is the smallest public-safe renderer tutorial. No Soul Bank material, no private selector logic, and no hidden DSP: three state values map to loudness, brightness, and detune in one browser synth.

VET controls

Change the state, then ping the renderer.

Audio locked until you press Start.

Renderer mapping

Energy → volume
0.50 maps to -12 dB.
Valence → filter brightness
0.50 maps to 2600 Hz.
Tension → detune
0.20 maps to -72 cents.

Portable event

The renderer sees state, not private source.

{
  "schema_version": "1.0",
  "id": "sig_vet_tone_demo_01",
  "occurred_at": "2026-05-14T00:00:00Z",
  "producer": "vibenet.protocol.hello",
  "entity": "renderer.tone_synth",
  "event": "renderer.vet_changed",
  "channel": "nominal",
  "valence": 0.5,
  "energy": 0.5,
  "tension": 0.2,
  "intensity": 0.35,
  "hue": 120,
  "pulse": 0.5,
  "confidence": 1,
  "ttl_ms": 6000,
  "metadata": {
    "demo_id": "vet-tone-demo-01",
    "renderer": "tone_synth",
    "private_assets_used": false,
    "manifest": "/protocol/examples/vet-tone-demo-01.manifest.json",
    "vet_stream": "/protocol/examples/vet-tone-demo-01.vet-stream.json"
  }
}

Boundary

This is a hello world, not the flagship proof.

The page proves the smallest renderer contract: a public state vector can alter sound in a readable way. The full VIBEnet proof remains the shared-clock surface where contract pane, trace, pulse, audio, and sidecars move together.