Spherical Chain CalculatorSCS · a reversible geometric encoding of text

Type a phrase: each character is encoded as one information vector (r, α, φ), unfolded in the previous node's frame and joined tip-to-tail into a chain of information vectors. The elevation accumulates per character, so the chain spirals upward.

r radius α elevation (from the xy-plane; ISO zenith = 90°−α) φ azimuth (in the xy-plane, CCW from +x) resultant (fingerprint) comparison chain x y z node-frame axes

Input

step 10°

Chain of information vectors · 3D

steps n
path length Σr
|resultant|
resultant (α, φ)
rise per step Δz = r·sinα
Drag to rotate · scroll to zoom · double-click to reset. Character → φ = slot × 4° (90-slot dial; ` ^ ~ { } removed; the null value is r=0).
Geometric fingerprint: two sentences start from the same origin — a shared prefix coincides exactly and forks at the first differing character (try cat / cap). In "Per-word" mode a word traces a congruent shape wherever it sits (see the word-shape gallery below).

Word-shape fingerprint gallery · one shape per word from the origin (per-word)

Each distinct word = one curve from the origin. Words sharing a spelling prefix share the initial segment (the more alike the spelling, the closer the start), so the whole vocabulary fans out into a 3D prefix tree; repeated words overlap exactly (marked ×N). Drag to rotate — linked to the main view above. Step size uses the "Elevation α" slider on the left.

Per-character encoding table

CharSlot rαφ Node N (x, y, z)

Decode verification · invert from node geometry alone, compared per character

#Orig dec rdec αdec φ dec charresult
The decoder reads only node coordinates (x, y, z): rebuild the frame per protocol → recover (r, α, φ) → look up the dial for the character, never consulting the source. A vertical step at α=90° loses φ; past α>90° it aliases with (180°−α, φ+180°) — both show up here as a failed decode.

90-slot dial reference · φ = slot × 4° (5 low-frequency chars ` ^ ~ { } removed)

Amplitude interference · exploratory (conjecture, not in the paper)

Each character = one unit amplitude (direction = φ); see the amplitude the two combine into.
φ_A = φ_B = angle Δφ = |A+B| =
Constructive (aligned → 2) · destructive (opposed → 0). Try 4 and lowercase c (φ differ by 180°) for full cancellation. This is a classical wave/interference demo, not quantum — see discussion-notes.md.

Definitions

Information vector vk
One unit of information, a triple (r, α, φ): radius r, elevation α (measured from the node frame's xy-plane, i.e. an elevation; ISO zenith angle = 90°−α), and azimuth φ (in the xy-plane, CCW from +x, 0–360°). Interpreted in the previous node's frame Fk−1.
Node Nk
The endpoint of the k-th information vector; N0 = origin O. The node sequence is the chain's vertices.
Node frame Fk
A local frame with origin at Nk. Translational: axes stay parallel to the global frame; co-moving: the +z axis rotates onto the incoming direction vk (θ becomes a bend angle relative to the previous step). F0 = global frame.
Vector chain C
An ordered sequence of information vectors C = (v₁ … v_n); unfolding rule N_k = N_{k−1} + R_{k−1}·sph(v_k), where R is the node-frame orientation and sph maps spherical → Cartesian.
Resultant
O → Nn, the whole chain's "fingerprint". The vector sum is lossy: the resultant alone cannot recover the steps; reversibility comes from keeping the whole polyline.
Encoding map
The rule symbol → (r, α, φ). Here the character sets φ — 90 slots × 4° (printable ASCII with 5 low-frequency chars ` ^ ~ { } removed; the rest occupy slots 0–89 in ASCII order); the null value takes no slot and is a r = 0 zero-length step; α and r follow the options on the left.
Spiral property (default)
Translational frame, constant r, per-character cumulative elevation α_k = k×step: the chain climbs as an ever-steepening spiral. For 0° < α_k < 180° each step rises by Δz_k = r·sinα_k > 0, so z strictly increases — node order is read from height, and a step's α directly gives its index (k = α/step). Cost: the step at α=90° is vertical and its φ is unreadable; past α≥180° the height order breaks ⇒ length bound = 180°/step − 1 (step 10° → 17 chars, skipping char 9; an earlier draft proposed step 0.01° → ~18,000 chars).