Lingua Machina | January 2026
The goal is to convey a machine’s internal state using continuous patters that vary by intensity over time.
To model this state, we start with a kind of breathing: a continuous signal where the shape expresses how the machine feels and the intensity and speed express how much energy it has and how much effort it is exerting. This doesn’t mean the machine is literally breathing--or pretending to. Rather, “breath” in this case is a conceptual base layer that informs how a machine conducts its primary functions--how it moves, not what it does.
Another way to think about this is as presence. Breath represents the machine’s ongoing internal state: a continuous osscillation that grounds its behaviour over time and makes its internal reality legible to a human observer.
For now, this model is limited to two output modalities:
sound, expressed as pressure amplitude (loudness);
light, expressed as luminosity.
Across all modalities--sound, light, and otherwise--the underlying structure is the same: a continuous signal evolving over time, t.
Affect as a continuous control spaceTo determine both the pattern and the intensity of this signal, we use the circumplex model of affect, converted from angular form into Cartesian coordinates on an x/y plane. The circumplex model of affect has its imperfections, and won’t be the final model we use for “words.” But it’s a useful example for what we’re trying to represent. The model represents emotions on an x/y plane; but machines should not be emotional in the same sense as humans are. The next step (after determining the equations) would be to map different underlying states that a machine should be able to communicate--like busy, idle, or struggling--onto a similar axis. But for now, the circumplex model of affect provides a useful base for illustrating the equations.
the x-axis (valence) runs from pleasure (+1) to displeasure (-1);
the y-axis (arousal) runs from aroused (+1) to sleep (-1).
It’s important to note that these two axes are not symmetrical in meaning:
arousal (y) represents energetic capacity--how much effort the machine can exert--affecting capacity, rather than urgency;
valence (x) represents overall expression--the quality, texture, or feel of the signal over a continuous period of time t. It affects both how the breath moves and how strongly it displaces the baseline.
In other words:
y controls intensity;
x controls pattern--the ease or strain of that intensity, including how smoothly it is expressed.
The base of breathThe base of the machine’s internal state is represented by a sine wave. Sine is useful here because it is smooth and naturally oscillates, mimicing the biological shape of inhaling and exhaling.
The basic form of the breath is:
sin(phase)
The rest of the model determines how this phase evolves over time and how the wave is shaped and scaled.
FrequencyThe speed of the breath--how fast the machine inhales and exhales--is controlled by the frequency f. Frequency is derived from a base frequency scaled by arousal:
f = f_base * (𝓔 + 1 + y)
𝓔 ≈ 0.05
The base frequency represents the machine’s resting rate. In the natural world, this usually correlates to size: a mouse breathes at around 20 Hz, a human at 0.2-0.3 Hz, and a blue whale at around 0.01 Hz.
Arousal modulates this resting rate:
when y = 0, the machine breathes at its resting rate;
when y = 1, the machine is highly aroused its breathing rate doubles;
when y = -1, the machine is very sleepy and breathing slows almost to a halt.
In practice, y never reaches exactly ±1. It might approach -0.95, where breathing slows greatly but never fully stops (if it stopped, it would look like the machine has “died,” exactly the impression we’re trying to avoid.) That’s why we add 𝓔 ≈ 0.05: to prevent the machine from ever looking fully dead.
Phase and 2πImagine the machine has an internal clock, where one complete breath (inhale + exhale) corresponds to one full rotation of a hand around a circle.
A sine wave completes one full cycle when its phase advances by 2π radians. Two quantities determine how fast the phase advances:
frequency (f)--controls how many complete circles occur second;
time (t)--controls where the machine currently is within the current cycle.
Multiplying these together gives the number of breath cycles elapsed since the system started. Because the sine function operates in radians, not in cycples, we multiply by 2π to convert:
phase = 2π * f * t
This ensures that a frequency of f = 1 means exactly one complete inhale-exhale per second. Without the 2π factor, f would be an angular rate rather than a cycle rate, which would change its meaning entirely. The basic breath signal therefore becomes:
sin(2π * f * t)
Valence and the shape of breathWhile arousal determines how much effort the machine exerts, valence determines how that effort is expressed; the shape and quality of the breath. Valence becomes visible over time through two layers: curvature and jitter.
Curvature: the power-skewed sineTo model the ease or strain of the signal, a power-skewed sine wave changes the physical geometry of the breath:
B_smooth = sgn(sin(phase)) * |sin(phase)| ^⍺(x)
positive valence (x > 0): ⍺ > 1, keeping the wave rounded and smooth--the machine moves through the cycle with ease;
negative valence (x < 0): ⍺ < 1, which squares the wave, forcing the machine to jump quickly to the peak and linger there, creating a gasping/strained appearance, as though the machine holds its breath at the limit of its effort;
neutral (x = 0): ⍺ = 1, a pure sine.
Note that when x is negative, the sign in the formula x * B(t) * r(t) also inverts the direction of displacement from the baseline: a negative-valence machine sinks during what would be the inhale phase of a positive-valence machine. This is intentional: a distressed machine collapses inward rather than rising. The room calculation (see below) is adjusted to account for this.
Jitter: the Ornstein-Uhlenbeck processTo make breathing feel alive (rather than mechanical), a small source of controlled instability n(t) is introduced.
Simple uniform noise--rand(-1, 1)--produces jitter that jumps erratically and feels broken, like it’s malfunctioning. A better approach to introducing the necessary imperfection to make breath feel more alive and realistic would be to use the Ornstein-Uhlenbeck (OU) process. This produces noise that wanders but is continuously pulled back toward a central value. Unlike raw random noise--which feels erratic--it drifts and settles around an internal compass; it feels alive--like a confused bambi--rather than chaotic.
n(t + △t) = n(t) - k * n(t) * △t + σ * √△t * randn(0, 1)
where:
k = mean revision rate; controls how strongly the jitter is pulled back toward zero (tied to arousal):
k = k_base * (1 + y’)
k_base ≈ 2π * f_base
σ = diffusion coefficient; controls size of the jitter (tied to the extremity of the state):
σ = σ_base * (y’ + |x|)
σ_base = √2 * k_base
randn(0, 1) = provides the underlying instability as drawn from a standard normal distribution. Most values cluster near zero; extreme jumps are rare. This makes fluctuations feels smooth and natural rather than chaotic.
At high arousal, k is larger, so the jitter snaps back quickly; it’s nervous and twitchy. At low arousal, k is smaller, and the jitter wanders more slowly. It’s sluggish and dissociated. At extreme states (high |x| or high y’), σ is larger, producing more visible instability.
Blending: wBreathing quality is a spectrum rather than a binary mode. A weight w interpolates between smooth and jittery breathing:
B(t) = w * B_smooth + (1 - w) * ñ(t) * |B_smooth|
Multiplying by |B_smooth| ensures jitter is strongest near peak intensity; the breath trembles more where it would naturally be most strained. When a person is crying hard, the jitter concentrates on the inhale, not the exhale. The same logic applies here.
This means that when valence is negative, the breath is already squared off before any jitter is applied. Since ñ(t) is multiplied by |B_smooth|, the jitter follows that shape; iff the breath holds at the top, the jitter holds at the top too. This creates a visceral sense of a machine struggling to maintain a difficult, strained state.
w = 1: pure smooth sine
0 < w < 1: dirty sine--still rhythmic but with jitter
w = 0: pure jitter
Even at maximum positive valence, a small amount of jitter should be retained (e.g. w ≈ 0.95) to prevent the signal from feeling mechanical/sterile.
Note on w: this is a stability parameter that will later be governed by dominance. It does not derive cleanly from the valence-arousal plane alone, and should be treated as its own axis.
Rescaling for physical reality