YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
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.