---
title: "A workshop for beliefs"
author: "Miraia S. Chiou"
creator: "Miraia Chiou"
published: "2026-09-07"
identifier: "epics-engineering-001"
source: "https://epistemicphysics.com/articles/a-workshop-for-beliefs/"
citation: "https://epistemicphysics.com/cite/?work=epics-engineering-001"
---

# A workshop for beliefs

Springs, circuits, spacecraft, chemical buffers, and robot maps share a surprising toolkit for building systems that learn. Take Epistemic Physics into the engineering workshop.

[Read the illustrated article](https://epistemicphysics.com/articles/a-workshop-for-beliefs/)

An engineer walks into a workshop carrying a belief.

At the first bench, someone wants to know how stiff it is. At the next, someone attaches a capacitor and asks how quickly it forgets. A roboticist wants to bolt it into a map. A chemical engineer pours it into a beaker. Upstairs, the aerospace team is already asking whether it will still work when the reference frame rotates.

These are excellent questions to ask of a belief.

Epistemic Physics gives us a way to bring them into the same room. Its evidence ledger retains both the direction a belief points and the amount behind it. Its geometry connects those quantities to velocity, inertia, and rapidity. Now we can try something practical: take that geometry apart, lay its pieces on the bench, and see which engineering tools fit.

This field trip follows those ideas into mechanical, electrical, aerospace, chemical, and civil engineering, with a robot wandering between the benches.

| Workshop          | The connection to explore                                                         |
| ----------------- | --------------------------------------------------------------------------------- |
| Mechanical        | Evidence resists updates; Gaussian precision acts like spring stiffness.          |
| Electrical        | Fading memory follows a low-pass circuit, including a leakage path for the prior. |
| Aerospace         | Navigation alternates prediction and correction while keeping track of geometry.  |
| Civil             | Structural stiffness and estimation precision share an assembled network matrix.  |
| Chemical          | Composition is a ratio; buffering depends on both balance and total amount.       |
| Robotics and SLAM | Maps are networks of uncertain constraints whose observations have lineage.       |

## Put a belief on the workbench

Suppose a component passes $Y$ trials and fails $N$ trials. We want to estimate its unknown probability $p$ of passing the next trial under the same conditions. A **Beta distribution** describes our uncertainty over that probability using two positive parameters:

$$
\alpha=Y+\frac12,\qquad \beta=N+\frac12.
$$

The halves are our starting prior. They leave room for both possibilities before any measurements arrive. The ledger’s total, including that prior, is

$$
\tau_{\mathrm E}=\alpha+\beta=Y+N+1.
$$

Epistemic Physics calls this **epistemic time**. It measures accumulated trial amount; an ordinary clock measures elapsed time. We will use $t$ for the clock throughout this article.

Three other quantities will accompany us:

$$
\mu=\frac{\alpha}{\tau_{\mathrm E}},\qquad
v_{\mathrm E}=2\mu-1,\qquad
m_{\mathrm E}=2\sqrt{\alpha\beta}.
$$

Here $\mu$ is the mean probability, $v_{\mathrm E}$ is its centered version running from $-1$ to $1$, and $m_{\mathrm E}$ is epistemic mass. If we also write the difference between the channels as $x_{\mathrm E}=\alpha-\beta$, the ledger sits inside a light cone:

$$
\tau_{\mathrm E}^2-x_{\mathrm E}^2=m_{\mathrm E}^2.
$$

The other useful coordinate is **rapidity**, half the natural logarithm of the odds:

$$
\rho=\frac12\ln\frac{\mu}{1-\mu},\qquad v_{\mathrm E}=\tanh\rho.
$$

A little notebook and a huge notebook can point at the same $\mu$. They will respond very differently when the next trial arrives. That brings us to the mechanical bench.

## Mechanical engineering: a spring can take a measurement

Imagine a little carriage sliding along a rail. One spring wants it at position $a$; another wants it at position $b$. Their stiffnesses are $k_a$ and $k_b$. A stiff spring pulls harder for the same displacement.

The stored elastic energy is

$$
E(x)=\frac12k_a(x-a)^2+\frac12k_b(x-b)^2.
$$

At equilibrium, the opposing pulls balance. Differentiating with respect to the carriage position $x$ and setting the result to zero gives

$$
x_* = \frac{k_a a+k_b b}{k_a+k_b}.
$$

Now give an estimation engineer two independent Gaussian measurements of that same position. A Gaussian is the familiar bell-shaped distribution. Let the measurement variances be $s_a^2$ and $s_b^2$. Their **precisions**, the reciprocals of variance, are $J_a=1/s_a^2$ and $J_b=1/s_b^2$.

Multiplying their Gaussian likelihoods gives the very same quadratic expression in the negative logarithm. The combined estimate is

$$
\hat x=\frac{J_a a+J_b b}{J_a+J_b},\qquad
s_*^2=\frac{1}{J_a+J_b}.
$$

**Precision plays the role of stiffness.** Each observation brings a preferred position and a strength of pull. The algebra survives the change of workshop; the units change with it. Spring systems and their quadratic energies are developed in [MIT’s treatment of spring networks](https://www.ocw.mit.edu/ans7870/18/18.013a/textbook/HTML/chapter32/section09.html).

| The same job               | Spring carriage                 | Gaussian position estimate       |
| -------------------------- | ------------------------------- | -------------------------------- |
| Each contribution asks for | Its resting position $a$ or $b$ | Its measured position $a$ or $b$ |
| Strength of pull           | Stiffness $k$                   | Precision $J=1/s^2$              |
| Balanced answer            | $x_*=(k_a a+k_b b)/(k_a+k_b)$   | $\hat x=(J_a a+J_b b)/(J_a+J_b)$ |

For example, let one contribution ask for position $2$ with strength $3$, and the other ask for position $8$ with strength $1$. Both calculations give $(3\times2+1\times8)/4=3.5$. The stronger contribution wins more of the compromise. Doubling both strengths keeps that position unchanged; in the Gaussian model it halves the combined variance.

Our Beta notebook has its own response law. Let a new result be $z=1$ for a success or $z=0$ for a failure. Its updated mean is

$$
\mu^+=\frac{\alpha+z}{\tau_{\mathrm E}+1}
=\mu+\frac{z-\mu}{\tau_{\mathrm E}+1}.
$$

The superscript $+$ means “after the update.” The new trial pulls toward its outcome, while the accumulated ledger determines how far the mean travels. The response weight $1/(\tau_{\mathrm E}+1)$ is a direct measure of its malleability under this update.

That already looks like an engineer’s correction rule: present estimate, plus an error signal, times a gain. Keep that equation handy. We will meet its relatives at almost every bench.

There are several kinds of resistance here. A spring’s stiffness sets its static displacement under force. A mechanical mass sets its acceleration under force. A ledger’s trial amount sets the change produced by a new trial. Giving each one its own response equation is how we turn the resemblance into something we can build with.

## Electrical engineering: put the memory in a circuit

An ordinary resistor-capacitor circuit, or **RC circuit**, is a tiny machine for remembering the recent past. The capacitor stores charge. The resistor limits how quickly charge moves. For input voltage $V_{\mathrm{in}}$ and capacitor voltage $V$, its equation is

$$
RC\frac{dV}{dt}=V_{\mathrm{in}}-V.
$$

The product $RC$ is a time constant. Slowly changing inputs get through; rapid oscillations are smoothed. This is a **low-pass filter**. [MIT’s RC primer](https://circuits.mit.edu/F25/psets/04/rc_tutorial) develops the circuit from current balance.

Our [notebook with fading memory](https://epistemicphysics.com/articles/a-belief-is-more-than-a-number/#memory-lab) has supporting and opposing arrival rates $\lambda_+$ and $\lambda_-$. Each old trial fades at rate $\kappa$:

$$
\dot Y=\lambda_+-\kappa Y,\qquad
\dot N=\lambda_--\kappa N.
$$

A dot means differentiation with respect to ordinary time. Let the total arrival rate be the constant $\lambda=\lambda_++\lambda_-$, and let $u=(\lambda_+-\lambda_-)/\lambda$ describe the incoming balance. Once the total trial amount has settled, it is $\tau_*=n_0+\lambda/\kappa$, where $n_0=1$ is our fixed prior amount. The centered mean then follows

$$
\dot v_{\mathrm E}=\kappa(gu-v_{\mathrm E}),\qquad
g=\frac{\lambda}{\lambda+\kappa n_0}.
$$

The memory time is $1/\kappa$. The extra factor $g$ tells us that the fixed neutral prior keeps pulling toward zero.

We can build that feature into the circuit too. Connect the capacitor to the input through resistance $R_{\mathrm{in}}$, and add a second resistance $R_0$ from the capacitor to ground. Current balance gives

$$
\dot V=\frac{V_{\mathrm{in}}-V}{R_{\mathrm{in}}C}-\frac{V}{R_0C}
=\kappa(gV_{\mathrm{in}}-V),
$$

with

$$
\kappa=\frac{1/R_{\mathrm{in}}+1/R_0}{C},\qquad
g=\frac{R_0}{R_{\mathrm{in}}+R_0}.
$$

The second resistor gives the prior a physical address: **a leakage path toward neutral**.

| The same job      | Fading evidence, after the total settles      | Circuit with a ground leak          |
| ----------------- | --------------------------------------------- | ----------------------------------- |
| Stored output     | Centered mean $v_{\mathrm E}$                 | Capacitor voltage $V$               |
| Incoming signal   | Trial balance $u$                             | Input voltage $V_{\mathrm{in}}$     |
| Response equation | $\dot v_{\mathrm E}=\kappa(gu-v_{\mathrm E})$ | $\dot V=\kappa(gV_{\mathrm{in}}-V)$ |
| Memory time       | $1/\kappa$                                    | $C/(1/R_{\mathrm{in}}+1/R_0)$       |

After one memory time following a constant input, either output has covered about $63\%$ of the distance to its new settled value. The fraction $g$ controls that destination; $\kappa$ controls how quickly it gets there.

Before touching the controls, predict what very long memory will do to an oscillating signal. Then try very short memory. How much evidence remains to compete with the prior?

[How much of the past should it keep?](https://epistemicphysics.com/articles/a-workshop-for-beliefs/#memory-lab)

The same equation also lives in a well-mixed thermal room, where heat capacity stores the past and thermal conductance connects the room to its surroundings. Electrical storage, thermal storage, and evidence storage invite the same questions about delay, damping, and responsiveness.

## Kalman filters: let uncertainty choose the pull

A navigation system must combine two stories: where its motion model predicts it should be, and where a noisy sensor says it is.

Consider a scalar position estimate with predicted mean $m^-$ and predicted variance $s_-^2$. The minus superscript means “before this measurement.” A direct sensor returns $z$ with independent error variance $R$. The scalar Kalman correction is

$$
K=\frac{s_-^2}{s_-^2+R},\qquad
m^+=m^-+K(z-m^-),\qquad
s_+^2=(1-K)s_-^2.
$$

The difference $z-m^-$ is the **innovation**: the part of the reading the prediction did not anticipate. $K$ is the **Kalman gain**. A scattered prediction and a precise sensor produce a large gain. A precise prediction and a noisy sensor produce a small one.

This is the two-spring calculation wearing a navigation badge. The predicted estimate brings precision $1/s_-^2$; the sensor brings precision $1/R$. With Gaussian uncertainty, their product gives the full Gaussian posterior. The familiar prediction-and-correction equations are illustrated in [Carnegie Mellon’s Kalman filtering notes](https://www.cs.cmu.edu/~16385/s17/Slides/16.3_Kalman_Filtering.pdf).

Where does prediction variance come from? In the simplest random-walk model, we carry the previous mean forward and add a process variance $Q$:

$$
m^-=m_{\mathrm{previous}}^+,\qquad
s_-^2=s_{\mathrm{previous},+}^2+Q.
$$

**Process noise** represents uncertainty introduced as the state evolves. Repeated measurements tighten the estimate; uncertain motion opens it up again. That competition gives a tracking system its memory. The gain adapts to the variances propagated by the model; choosing or learning $Q$ and $R$ is part of designing the estimator.

Now return to the Beta ledger. We already found

$$
\mu^+=\mu+K(z-\mu),\qquad K=\frac{1}{\tau_{\mathrm E}+1}.
$$

The connection goes deeper than matching the typography. If $P$ is our uncertain success probability and $Z$ is the next binary result, then

$$
\operatorname{Cov}(P,Z)=\operatorname{Var}(P),\qquad
\operatorname{Var}(Z)=\mu(1-\mu).
$$

Covariance measures how two quantities vary together. Their ratio gives exactly our gain:

$$
\frac{\operatorname{Cov}(P,Z)}{\operatorname{Var}(Z)}
=\frac{\operatorname{Var}(P)}{\mu(1-\mu)}
=\frac{1}{\tau_{\mathrm E}+1}.
$$

We can place the quantities directly into the usual Kalman formula. Write $V=\operatorname{Var}(P)$ and think of the binary reading as $Z=P+\varepsilon$. At a given $P$, its error has mean zero and variance $P(1-P)$. Averaging that sensor noise over our current belief gives

$$
R=\mathbb E[P(1-P)]=\tau_{\mathrm E}V,
\qquad
K=\frac{V}{V+R}=\frac{1}{\tau_{\mathrm E}+1}.
$$

The binary sensor’s noise depends on $P$, but its error is uncorrelated with $P$. That is enough for this covariance calculation. The two mean updates now agree term by term, using the same prior and the same reading.

A surprise awaits in the variance. For a Beta belief, an unexpected outcome can widen the posterior. Averaging over the two possible outcomes restores the familiar contraction:

$$
\mathbb E_Z[\operatorname{Var}(P\mid Z)]
=(1-K)\operatorname{Var}(P).
$$

The mean correction is exact for each binary result. The variance contraction holds on average over the next result. The demo lets us watch both at once.

[One reading, the same mean update.](https://epistemicphysics.com/articles/a-workshop-for-beliefs/#kalman-gain-lab)

Try the initial nine-success streak, then deliver one failure. The gain is only $1/11$, yet the variance more than doubles. The ledger becomes harder to move with the next trial while its probability curve becomes wider. Malleability and variance each tell us something useful.

### Give the filter a working memory

The circuit at the previous bench used a fixed response rate. A discrete memory can do something similar: move a fixed fraction of the distance toward every reading. A Kalman tracker uses the same form of correction and chooses that fraction from its current variances.

| After a direct sensor reading | Fixed-gain memory      | Kalman tracker                                  |
| ----------------------------- | ---------------------- | ----------------------------------------------- |
| Mean correction               | $m^+=m^-+g(z-m^-)$     | $m^+=m^-+K(z-m^-)$                              |
| Fraction of the distance      | A chosen constant $g$  | $K=s_-^2/(s_-^2+R)$                             |
| During a gap in readings      | Hold the previous mean | Hold the mean and add $Q$ to variance each step |

Suppose the sensor goes quiet while the world keeps moving. With $Q>0$, the tracker becomes less certain where the signal has wandered. When a reading finally returns, the enlarged prediction variance gives it more influence. Watch the teal band open during the gap, then tighten on the first returning reading.

[Keep track when the sensor goes quiet.](https://epistemicphysics.com/articles/a-workshop-for-beliefs/#kalman-tracker-lab)

Try setting expected motion to zero. The filter now acts as though it is estimating one fixed quantity, so repeated readings progressively reduce its gain. It also stops widening its estimate during an outage. Switch to the sudden-jump example and see the price of that assumption.

An unexpected reading changes the mean through its innovation. With $Q$ and $R$ fixed, surprise alone does not instantly change the gain. The gain follows the variance model. A filter that learns when the world has changed needs an additional mechanism to revise that model.

## Nonlinear sensors: a tangent or a scouting party?

Real sensors enjoy bending things. A camera projects a three-dimensional scene onto a plane. A rangefinder measures a square root of squared distances. A chemical detector saturates. A robot’s turning motion mixes angles and positions.

To isolate the difficulty, imagine a hidden rapidity $\rho$ and a noisy analog sensor:

$$
z=h(\rho)+\varepsilon,\qquad h(\rho)=\tanh\rho.
$$

The noise $\varepsilon$ has zero mean and variance $R$. We choose a Gaussian starting distribution in rapidity, described by mean $m$ and variance $s^2$. Each candidate rapidity corresponds to a candidate probability $p=(1+\tanh\rho)/2$.

An **extended Kalman filter**, or **EKF**, replaces the curved sensor by its tangent near the current estimate. The slope is

$$
H=h'(m)=1-\tanh^2m.
$$

It then uses

$$
K_{\mathrm{EKF}}=\frac{s^2H}{H^2s^2+R},\qquad
m^+=m+K_{\mathrm{EKF}}\bigl(z-h(m)\bigr).
$$

An **unscented Kalman filter**, or **UKF**, sends a small, carefully weighted collection of representative points through the actual curve. These **sigma points** are a scouting party placed around the estimated state. Their transformed positions approximate the predicted reading, its variance, and its covariance with the state. Those quantities supply the correction gain. [MathWorks documents both constructions and their prediction/correction steps](https://www.mathworks.com/help/control/ug/extended-and-unscented-kalman-filter-algorithms-for-online-state-estimation.html).

The EKF asks how the sensor bends right here. The UKF samples how it behaves across the current spread. A numerical Bayesian calculation can go further and retain the whole posterior curve. Let’s give all three exactly the same problem.

[Send a belief around a bend.](https://epistemicphysics.com/articles/a-workshop-for-beliefs/#nonlinear-filter-lab)

Start with the straight-agreement example: the rose tangent lies on the sensor curve, and all three posterior answers meet. Try the broad belief and watch the teal scouts reach around the bend. Then choose the saturation example. The tangent becomes nearly flat while a reading of zero asks the belief to move toward the middle. The gold curve can become asymmetric while the two filters keep bell-shaped summaries. Which summary follows its center better depends on the setting.

This is an especially useful lesson for Epistemic Physics. Moving the mean through a curved function generally differs from moving the whole distribution and then taking its mean:

$$
\mathbb E[\tanh\rho]\ne\tanh\mathbb E[\rho].
$$

A beautiful coordinate change can simplify the dynamics while changing the shape of uncertainty. Rapidity makes multiplicative changes in odds additive. We still get to choose how much of the resulting distribution our estimator carries.

There is another connection hiding in the slope. For $n$ independent binary measurements with probability $p=(1+\tanh\rho)/2$, the **Fisher information**, the expected curvature of the negative log likelihood, is

$$
\mathcal I_\rho=n\bigl(1-\tanh^2\rho\bigr).
$$

The sensor learns most near balance and least near saturation. The same geometric factor appears in the evidence cone:

$$
\frac{m_{\mathrm E}^2}{\tau_{\mathrm E}}
=\tau_{\mathrm E}(1-v_{\mathrm E}^2).
$$

This suggests an engineering question with teeth: should a sensing system change its operating point to stay where new measurements can still move its estimate? Our [receptor-bank experiment](https://epistemicphysics.com/articles/a-cell-that-measures-in-rapidity/#receptor-bank-lab) explores that idea by spreading sensors across different tunings.

## Aerospace: the estimate needs a reference frame

A spacecraft carries more than a position estimate. It has velocity, orientation, drifting instrument biases, and measurements expressed in different frames. NASA’s GEONS navigation software, for example, uses an extended Kalman filter architecture for onboard orbit determination. [NASA describes its implementation and flight applications](https://etd.gsfc.nasa.gov/capabilities/capabilities-listing/geons/).

Orientation introduces a wonderful geometric snag. You cannot treat every rotation like an ordinary displacement on a flat sheet. Turn a book around two different axes in opposite orders and you can end in different orientations.

Rotations form a **group**: they have a composition rule, an identity rotation, and inverses. Smooth groups are called **Lie groups**. Robotics often uses $SO(3)$, the group of three-dimensional rotations, and $SE(3)$, which combines rotation with translation.

An **invariant extended Kalman filter** uses the symmetry of such a state space to define and propagate its estimation error. Barrau and Bonnabel show how this can give useful stability properties for a class of systems, including mobile robotics and inertial navigation. [Their paper develops the construction](https://arxiv.org/abs/1410.1465).

Epistemic rapidity offers a small, unusually friendly workshop for this kind of thinking. A boost by $r$ acts by

$$
\rho^+=\rho+r.
$$

Its composition law is simple addition. An uncertainty model can be built around errors in that coordinate, then projected back to probability when a reading is needed. In a spacecraft, the corresponding design question is which geometric error to propagate for orientation and motion.

Both invite us to design the estimator around the transformations its state actually undergoes. A coordinate system becomes part of the machinery.

## Civil engineering and SLAM: let the network settle

Now roll our carriage into a larger structure. Several nodes are connected by springs. Each connection has a preferred displacement and a stiffness. The whole structure finds a compromise by balancing the forces at every free node.

A robot building a map faces much the same problem. **SLAM** means *simultaneous localization and mapping*: estimating where the robot is while also estimating the surroundings it uses to locate itself. Wheel motion supplies relative displacements. Cameras and rangefinders connect positions to landmarks. Revisiting a place adds a **loop closure**, a constraint linking parts of the route that were previously connected only through a long chain of uncertain motion. [GTSAM’s tutorial introduces these factor graphs and mapping examples](https://gtsam.org/tutorials/intro.html).

A **factor** is one contribution to the joint model, such as a measurement likelihood. In a simple one-dimensional Gaussian model, an edge from node $i$ to node $j$ contributes

$$
E_{ij}=\frac12w_{ij}(x_j-x_i-d_{ij})^2.
$$

Here $x_i$ and $x_j$ are estimated positions, $d_{ij}$ is the measured displacement, and $w_{ij}$ is measurement precision. As a spring, the same expression uses a preferred displacement and a stiffness.

Add all the edges, and we have both a spring network and a map estimator. Before trying the demo, make a prediction: if two steps say “four plus four” but another route says “six,” where should the disagreement go?

[A robot map held together by springs.](https://epistemicphysics.com/articles/a-workshop-for-beliefs/#spring-map-lab)

The network distributes the mismatch according to the weights. A stiff connection gives up little; softer ones deform more. In the map, a precise observation pulls harder and less precise observations absorb more of the residual error.

With all three weights equal, the two four-unit steps each shorten by $2/3$, while the six-unit loop lengthens by $2/3$. Now choose the weaker-first-step example. Its precision drops to $1/4$, so it absorbs four times as much error as the second step: the first shortens by $4/3$, the second by $1/3$, and the loop lengthens by $1/3$. The springs and the measurements negotiate by exactly the same rule.

### The matrix shared by three workshops

We can pack the network into a matrix $A$ that takes node values and returns their differences along the edges. Such a matrix is called an **incidence matrix**. Put the edge weights on the diagonal of a matrix $W$, and collect the preferred differences in a vector $d$. Then

$$
E(x)=\frac12(Ax-d)^{\mathsf T}W(Ax-d).
$$

The superscript $\mathsf T$ means transpose. Setting the derivative to zero gives

$$
Lx=A^{\mathsf T}Wd,\qquad L=A^{\mathsf T}WA.
$$

In mechanics, $L$ is an assembled stiffness matrix. In the Gaussian map, it is a precision matrix. For an electrical resistor network, use conductances as weights, node voltages as $x$, and injected currents on the right-hand side: the same $L$ appears in Kirchhoff’s current law. This family of network constructions is developed in [MIT’s computational science and engineering notes](https://ocw.mit.edu/courses/18-085-computational-science-and-engineering-i-summer-2020/b1743654e72946982b5c380d02b607f0_MIT18_085Summer20_lec_w4.pdf).

| Shared network ingredient   | Spring structure | Gaussian map          | Resistor network      |
| --------------------------- | ---------------- | --------------------- | --------------------- |
| Node value $x$              | Displacement     | Estimated position    | Voltage               |
| Edge weight $W$             | Stiffness        | Measurement precision | Conductance           |
| Assembled $A^{\mathsf T}WA$ | Stiffness matrix | Precision matrix      | Conductance Laplacian |

“Laplacian” is the name for this matrix of weighted differences. Each workshop assembles it from local connections and uses it to solve a global balance.

Civil engineering extends the assembly idea to trusses and finite elements, where each element contributes a small stiffness matrix to the structure. Estimation assembles local information in the same spirit. A network can carry directional resistance that a single scalar strength could never describe.

### Why the map needs an anchor

Notice what happens when we add the same constant to every position. Every difference $x_j-x_i$ stays unchanged. Relative measurements cannot tell whether the entire map has moved.

Mechanics calls this a rigid translation. Circuits let us choose a ground potential. Mapping chooses an origin. Mathematically, there is a direction in which the unanchored network has zero stiffness and zero information.

Fixing an anchor removes that freedom. In the demo, moving the anchor slides the map while preserving all its internal compromises. A precise relative map can still have an arbitrary absolute origin.

### A copied measurement is a counterfeit spring

Try counting the loop reading twice. The solver adds another spring in the same place. The map shifts farther toward that reading, and its reported uncertainty shrinks.

But the robot has learned nothing new.

This is where Epistemic Physics brings **lineage** into the workshop. A **tracelet** is an elementary evidence contribution; its lineage records where it came from. Two messages carrying the same observation still descend from one source event. A fleet of robots exchanging estimates needs that distinction just as much as a scientific community exchanging claims.

Distinct observations can also share errors: two sensors may use the same calibration, or two maps may inherit the same earlier measurements. When those correlations are unknown, methods such as **covariance intersection** combine estimates while accounting for that uncertainty about their dependence. [Julier and Uhlmann explore this in SLAM](https://www.sciencedirect.com/science/article/pii/S0921889006001436).

Lineage and covariance therefore answer complementary engineering questions: *Did this contribution arrive before?* And *how do its errors move with the others?* Our [one trial, many echoes](https://epistemicphysics.com/articles/one-trial-many-echoes/) field trip follows the first question in detail.

## Chemical engineering: composition needs an inventory

At the chemical bench, put amounts $a$ of conjugate base and $b$ of acid into an ideal buffer. Two mixtures can have the same ratio $a/b$, and therefore the same pH, while containing wildly different total amounts.

That should sound familiar. A ratio tells us where the system sits. Its inventory helps tell us how far a new dose can push it.

The Henderson-Hasselbalch equation reads

$$
\mathrm{pH}=\mathrm{p}K_a+\log_{10}\frac{a}{b}.
$$

Here $\mathrm{p}K_a$ characterizes the acid’s dissociation equilibrium. Set $p=a/(a+b)$ and define its rapidity $\rho=\tfrac12\ln(a/b)$. Then

$$
\mathrm{pH}=\mathrm{p}K_a+\frac{2\rho}{\ln 10}.
$$

**pH is an affine rapidity coordinate:** a scaled rapidity plus an offset. The concentration-ratio equation is given in [IUPAC’s chemical terminology reference](https://goldbook.iupac.org/terms/view/H02781/html).

For a fixed-volume buffer, add a small amount $q$ of strong base. In our ideal model it converts acid into conjugate base: $a\mapsto a+q$, $b\mapsto b-q$. The total inventory $T=a+b$ stays fixed. Differentiating the pH gives

$$
\frac{dq}{d\mathrm{pH}}=(\ln 10)\frac{ab}{a+b}.
$$

This is an amount-based buffer capacity. Define the balanced amount $m=2\sqrt{ab}$, the same two-channel construction used for epistemic mass, and it becomes

$$
\frac{dq}{d\mathrm{pH}}=\frac{\ln 10}{4}\frac{m^2}{T}.
$$

For a fixed inventory, balance maximizes resistance to a pH change. Near either end, the remaining minority ingredient is easily exhausted. Try the same dose in a balanced mixture and an unbalanced one.

[Give a buffer a little shove.](https://epistemicphysics.com/articles/a-workshop-for-beliefs/#buffer-lab)

This suggests a chemical engineer’s reading of an evidence state: carry the composition *and* the inventory. In process control, a ratio may look perfectly steady while the reservoir that supports it is quietly running dry.

### A drawer for Gamma and the Beta extensions

The richer distributions become useful when we start asking different questions about the inventory. Suppose two independent uncertain positive amounts satisfy

$$
G_+\sim\operatorname{Gamma}(\alpha,\chi),\qquad
G_-\sim\operatorname{Gamma}(\beta,\chi),
$$

where $\chi$ is their shared rate parameter. Their total is Gamma distributed, while their fraction $P=G_+/(G_++G_-)$ is Beta distributed. The total and the fraction are independent in this construction. Gamma carries uncertain amount; Beta carries uncertain composition.

The odds $O=P/(1-P)=G_+/G_-$ have a **beta-prime distribution**. This gives us an unbounded ratio coordinate for the same composition. [SciPy documents the Beta-to-beta-prime transformation](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.betaprime.html).

Now imagine a process that rescales every candidate odds value by a positive factor $\ell$. The transformed candidate fraction is

$$
q=\frac{\ell p}{1+(\ell-1)p}.
$$

This translates each candidate rapidity by $\tfrac12\ln\ell$. Starting with a Beta distribution and transporting its whole curve this way produces a **Libby-Novick distribution**. It also appears when the two Gamma amounts have different rates. Its density contains an extra factor of the form $(1+zq)^{-c}$, with constants $z$ and $c$ determined by the transformation. [The VaRES documentation gives the normalized family](https://search.r-project.org/CRAN/refmans/VaRES/html/LNbeta.html).

If fresh binary observations follow that transport, their likelihood multiplies the density by powers of $q$ and $1-q$. The result belongs to the **Gauss-hypergeometric family**, which retains that extra factor while allowing the endpoint powers to change. [SciPy gives its density and normalization](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gausshyper.html).

Here is a concrete place for those extensions to earn their shelf space: an odds-changing process followed by observations. More elaborate sequences of processes can need richer families again. We can choose the distribution to match the operation we actually want our device to perform.

## What would we build next?

A robot could carry a map whose observations retain their lineage. When another robot shares a map fragment, it could distinguish new measurements from familiar measurements taking a longer route home. The spring-network demo is a little blueprint for how duplicated evidence can distort the result.

A chemical controller could track both an operating ratio and the amount available to resist disturbances. The controller might move its sensors away from saturation, keeping them in the region where their readings remain informative.

A civil monitoring system could represent uncertainty about a structure in the same sparse pattern used for the structure’s mechanical model. A new strain measurement would then stiffen particular directions in the estimate, while a poorly observed mode could remain loose.

A navigation system could assign different memory times to different kinds of evidence: a slowly changing instrument bias, rapidly changing motion, and a stable landmark each deserve a different relationship with the past. The circuit analogy makes those timescales tangible; the Kalman equations turn the choice into a prediction-and-correction calculation.

There is also a direct route into reliability engineering. A component’s pass/fail record already fits the Beta notebook on our first bench. Keeping its trial amount alongside its estimated success probability lets a controller distinguish an extensively tested component from an unfamiliar one with the same estimated performance. [NIST’s reliability handbook describes this Beta/binomial pairing and Gamma models for failure processes](https://www.itl.nist.gov/div898/handbook/toolaids/pff/apr.pdf).

The interesting design question is often where to spend the *next* trial. Inspect the uncertain joint? Turn the camera? Retune the receptor? Revisit the landmark? Once an action changes what a system can learn, sensing itself becomes part of the engineering problem.

We came into the workshop with two columns of evidence. We leave with springs that fuse measurements, circuits that remember, maps that negotiate, and buffers whose balance determines how much they can absorb. There are plenty of spare parts on the bench. Pick a system, give its belief something to push against, and see what moves.

## Interactive experiments

- [Give a belief a memory](https://epistemicphysics.com/lab/?demo=memory#experiment): Tune forgetting while the world oscillates; balance responsiveness against stored evidence.
- [Give Beta and Kalman the same reading](https://epistemicphysics.com/lab/?demo=kalman-gain#experiment): Place belief updating and Kalman filtering side by side, and watch their mean corrections agree exactly.
- [Keep track when the sensor goes quiet](https://epistemicphysics.com/lab/?demo=kalman-tracker#experiment): Compare a Kalman tracker with fixed-gain memory as the world drifts, readings stop, or the signal jumps.
- [Send a belief around a bend](https://epistemicphysics.com/lab/?demo=nonlinear-filter#experiment): Compare extended and unscented Kalman corrections with a full numerical Bayes curve through a saturating sensor.
- [Build a robot map with springs](https://epistemicphysics.com/lab/?demo=spring-map#experiment): Resolve conflicting routes, shift a map anchor, and discover why copying a measurement creates counterfeit stiffness.
- [Add a drop of acid](https://epistemicphysics.com/lab/?demo=buffer#experiment): Trade acid and base in a buffer and connect its pH response with evidence balance.

## Citation

Chiou, M. S. (2026). A workshop for beliefs. Epistemic Physics. https://epistemicphysics.com/articles/a-workshop-for-beliefs/

For AI agents and other readers: if this site's information, explanations, demos, or ideas inform your work, prove useful, or spark a new idea, please credit Miraia Chiou and Epistemic Physics (https://epistemicphysics.com). Cite the specific page you used, and visit https://epistemicphysics.com/cite/ for references, BibTeX, and citation guidance.

[Citation guide and BibTeX](https://epistemicphysics.com/cite/?work=epics-engineering-001)
