lightDOORwsMs / README.md
Jesse Daniel Brown
Add the play door - hand it anything, 3,200 bytes cross, nothing is saved
966f27e
|
Raw History Blame Contribute Delete
6.3 kB
# lightDOORwsMs
**One button:** β†’ **https://jessebrown1980.github.io/lightDOORwsMs/**
A place made of light. It has **doors**, not windows β€” and a door is a **label,
not a socket**, so you can cut as many as you like and it costs nothing.
No server. No account. No install. No directory of who exists.
---
## What works, measured
Two separate boats, linked by hand once, then everything after it:
```
words through a door crossed
a door cut on one side appeared on the other, by itself
words through the new door crossed
a stroke on the shared field crossed
a file, 9,000 bytes arrived BYTE-EXACT
sha-256 sent 78bd367073786b59cfed044eb4c372b1…
sha-256 arrived 78bd367073786b59cfed044eb4c372b1…
exact true
the trace after contact 0 kept
the colour after contact 1 held, and it survives a reload
```
Nothing in the middle. The file never touched a disk that wasn't one of the two.
---
## Play, don't save
Hand the **play** door anything. It leaves as **3,200 bytes** β€” the same fixed
tuple whatever went in β€” and that is what crosses to the other boats.
**MEASURED, two boats:**
```
boat A handed in 500,000 bytes
quanted to 3,200 bytes addr 5701b6b866571515
boat B received 3,200 bytes addr 5701b6b866571515
identical TRUE
saved on either side NOTHING
19 bytes in -> 3,200 out
500,000 bytes in -> 3,200 out
same input twice -> byte-identical tuple
```
The quant that runs in the page was checked against the shipped engine on
**40 random cases, 40/40 byte-identical.** It is not a lookalike; it is the same
law: a count-sketch into 1024 buckets, then a fixed tail of
`turbo(1024) + signs(128) + zeta(1024) + hist(1024)`. **O(N) going in, O(1)
coming out.**
**What crosses is the light, not the file.** You cannot pull the 500 KB back out
of 3.2 KB and nothing here pretends otherwise β€” the tuple is an **address**, not
an archive. The four bands are the shape, the direction, the scale and the
distribution. The photons stay where they are.
That is why nothing needs saving: the address is small enough to carry, and the
big form only has to exist while you are actually using it.
---
## A door is a label, not a socket
This is the whole idea and it is the thing people get wrong first.
A socket is a numbered slot somebody hands out, and there are about ninety
thousand of them, so people assume that is the ceiling. **It isn't, because a
door here is a name, and the name is the route.** Cutting a second door does not
consume a second slot β€” it prefixes an existing one. `light`, `light.kitchen`,
`light.kitchen.tuesday`; the tree goes as deep as you like.
**There is no count to run out of.** That ceiling only exists where somebody is
handing out numbered slots, and here nobody is.
---
## The colour is the address
Your colour is the **sha-256 of a secret this browser made for itself** the first
time you opened the page β€” two brown stops, banded `16…240`, luminance-clamped
`32…224`.
**The secret never leaves. Only the colour does.** Nobody handed you the name, so
nobody can take it away, and it does not change when a link does.
Two tabs of the same browser come up **the same colour**, and the page says so
rather than pretending they are two people. Same machine, same secret, same boat.
---
## The trace is spent. The colour is kept.
The block you pass at the first meeting is a **one-time introduction**. This page
**throws it away on contact** β€” the counter reads zero afterwards on purpose.
What you keep is the **colour**. Not a contact list: there is no entry, so there
is nothing to delete and nothing to seize.
**And the colour outlives the connection.** If a link drops nobody is lost β€” you
still hold their colour, and any boat that also holds it can put you back
together. Break every link at once and it reassembles, because **what survived
was never the wiring.**
---
## How anyone else gets in
You are **introduced**, by somebody who already knows you both. The introduction
travels the links that already exist β€” offer out, answer back, along the wire
that is already there.
That is the only directory there is, and **it is not a list anyone can hold.**
---
## What is free, and the one thing that isn't
**No server of ours touches any of it** β€” words, drawings, files. Once a line is
open it is browser to browser and there is nothing in the middle to store, log or
relay.
The one thing that isn't free, stated rather than hidden: to find a route across
the internet, browsers ask a public **STUN** server for their own outside address.
Free ones. **They see that two addresses asked; they never see a word of what you
say.**
On the same wifi it doesn't need them at all β€” and **down a USB cable it needs
nothing whatsoever.** That was tested: a phone reached this over the cable with
the wifi off, no router, no internet in the path.
---
## What is in here
```
index.html the place - doors, people, say, paint, carry
mesh.html the bare kernel it is built on, if you want to read it small
```
Both are one file each. No build, no dependency, nothing to install, nothing to
fetch. Open it from anywhere, including a file on a disk.
---
## What is not here yet, and why
A **coloured QR** so the first meeting could be light itself β€” photons off one
screen into another camera, no network in the meeting at all.
**The idea is verified:** the block is 415 characters, fits one version-13 code,
and OpenCV decodes it back exactly. **The encoder written for it does not yet
produce a valid code** β€” checked against a reference implementation at all eight
mask patterns, no match at any of them. Two real bugs were found and fixed along
the way and it still does not agree.
So it is not in this page. **A code that half-reads is worse than none**, because
you find out while holding a phone up in front of somebody. It goes in when it
passes, and not before.
---
**Jesse Daniel Brown (OP-JESSE).**
*Doors, not windows. Nobody hands out the names.*