Interactive mathematics

Change the parts.
See what survives.

Rebuild an operation. Refine a signal. Find what a summary loses.
Go deeper with a four-level Haar signal experiment.

Exact calculations · Instant results · No installation

Open Signal Laboratory · Compare 16–256 samples, three representations, noise, and coefficient budgets.

Open J-Space Laboratory · Edit saved neural agents, trace their messages, and test what persists.

Save or share these settings.

01 / Operator packets

The whole operation, in four pieces.

Each block carries one input coordinate to one output coordinate. Keep all four to rebuild the matrix operation.

Change the inputs

Try changing a coordinate, then remove a block.

Matrix T

Rows are outputs.
Columns are inputs.
Whole numbers −9 to 9.

Keep these blocks
Direct result · Tx(8, 18)
From kept blocks(8, 18)
Residual · direct − rebuilt(0, 0)

All four blocks retained. The operation is reconstructed.

Tap a connection or transfer row to keep or omit its block, or use the checkboxes. Each contribution is T[row, column] × x[column]. Dashed marks indicate omitted blocks.

Why does reconstruction work?

The coordinate projectors P₁ and P₂ add to the identity. Consequently, the sum of all four blocks PⱼTPᵢ is (P₁ + P₂)T(P₁ + P₂) = T for every vector. Omitting a block changes the retained operator whenever that block is nonzero; a particular input may still give the same output.

Continue to the hand calculation, operator identity, and Paper I source links.

Read the packet reconstruction explanation Open the Python example

02 / Signal refinement

More parts. The same signal.

Separate eight samples by their original addresses. Finer packets preserve every value; discarding a packet can leave a residual.

Shape the signal

Changing resolution restores all packets.

Tap a sample in any row to keep or discard its entire address packet, or use the checkboxes below.

Keep these address packets
Retained samples8 / 8
Squared residual norm · Σrᵢ²0

All packets retained. Every sample is recovered.

Inspect the values and original addresses
Original, reconstructed and residual values
AddressOriginalRebuiltResidual
What changes when the packets get finer?

Addresses start at zero. With four packets, packet r holds addresses congruent to r modulo four. The even packet splits into packets 0 and 2; the odd packet splits into packets 1 and 3. With eight packets, each of those splits again. Returning each sample to its address reconstructs the signal. Here, a discarded sample is replaced by zero, and the residual is original minus rebuilt.

Continue to the address calculation and Paper II refinement sources.

Read the signal refinement explanation Open the Python example

03 / Information and recovery

One summary. Two possible inputs.

The summary keeps only x₁ + x₂. Move along the line to see which questions still have a unique answer.

Go deeper in Recovery Laboratory · Edit multiple measurements and questions, inspect exact certificates, and repair missing information.

Choose the question

For a custom question F(x) = ax₁ + bx₂, change a and b below.

Drag u along the line, or use the position slider. Coordinates snap to whole numbers from −4 to 4 for x₁; the sum stays fixed.

Input u(1, 0)F(u) = 1
Same summary1x₁ + x₂
Input v(0, 1)F(v) = 0

Same summary, different answers. The first coordinate cannot be recovered from the sum alone.

The summary erases the direction (1, −1), but the requested answer changes along it.

When is recovery possible?

For R(x) = x₁ + x₂ and F(x) = ax₁ + bx₂ on the real plane, exact recovery from R for every input is possible exactly when a = b. Then F(x) = aR(x) and the recovery rule is G(s) = as. Otherwise, u and v above have equal sums but answers differing by a − b. No function of the sum alone can give both answers, even if that function is nonlinear.

Continue to the collision argument, Paper III, and Realization Boundaries.

Read the recovery explanation Open the Python example

04 / Multilevel Haar decomposition

Keep the structure. Choose the detail.

Analyze a 16-sample signal through four levels of averages and differences. Select its coefficients, then reconstruct the signal and account for the loss.

Choose a signal

Edit any sample below. Addresses run from 0 to 15; values are whole numbers from −16 to 16.

Try a selection

Moving the cutoff selects details with |coefficient| ≥ cutoff. You can then override that selection using the coefficient checkboxes. The global mean is always kept.

Selection: all coefficients.

OriginalReconstructedResidual
Inspect the signal

Choose a coefficient to highlight its support and plot its contribution if kept.

Retained coefficients16 / 16
Squared reconstruction error · Σrᵢ²0

All 16 coefficients retained. Every sample is recovered exactly.

Keep the coefficients

A detail changes the two halves of its support in opposite directions. Toggle a coefficient to see its contribution.

Global mean · always kept3
Inspect samples, intermediate averages, and the energy balance

Original energy = reconstructed energy + residual energy

416 = 416 + 0

The averaging normalization needs weights: the mean has weight 16 and a level-j detail has weight 2ʲ. Unweighted coefficient squares do not equal signal energy.

Four analysis levels, from fine to coarse
LevelAveragesDetails
Sample values at each original address
AddressOriginalReconstructedResidual
How do four levels reconstruct the signal?

For each pair (u, v), store its average a = (u + v)/2 and detail d = (u − v)/2. Repeat on the averages until one global mean remains. This gives 1 mean and 1 + 2 + 4 + 8 details. Invert one level with u = a + d and v = a − d, then repeat toward the samples. An unchecked detail is replaced by zero. The synthesis vectors are mutually orthogonal; accounting for their weights gives the displayed energy balance.

All arithmetic here uses bounded integers and fractions with power-of-two denominators. The displayed coefficients and reconstruction errors are exact.

Build on the Haar-pair worked example, then follow its Paper V and Information Realization source links.

Read the multilevel calculation Start with the four-sample example

These experiments use bounded integer inputs, with exact power-of-two fractions in the Haar lab. The linked explanations give the arguments, sources, and recorded proof coverage.