fyzx fyzx
---- no peer

Move a file between two devices in the same room.

Screen to camera, as QR codes. No network, no cable, no account. Nothing you send leaves the two devices holding it.

  1. Scan the code with their camera.
  2. Choose a file on this device.
  3. Point their camera at this screen.
  4. It verifies, then saves over there.

Link the other device

Scan this with the phone's camera app.

Other screen already showing codes?

Start

Workspaces

  1. Start listening on both devices.
  2. Type a line; watch its airtime.
  3. Send. The tones play, they decode.
  4. Or record a voice note instead.

No peer Mic off
One listener at a time
  • Nothing said yet.

    Start listening on both devices and talk. There is no network and nothing to pair - the other phone only has to be within earshot.

    Kept on this device only. Sound carries to everyone in earshot.

Sound link

Two lanes of sixteen tones, 17.0 to 18.6 kHz, 25 bytes a second. Nothing to pair; the other seat only has to be in earshot.

  1. Pick a band. Quiet is the default.
  2. Start listening, and allow the microphone.
  3. Watch the waterfall for stepping tones.
  4. Ping, to check the other device.

Off.

Everyone in earshot hears this. To talk, go to Comms.

Sense

What this device can work out about the room it is in, from physics alone. Nothing is sent anywhere and nothing is kept.

The read

Nothing measured yet.

Press Start sensing. It listens for about ten seconds and then says what it can.

What it concluded

What it could not tell

What this device admits to having

A browser cannot be calibrated, so some of these are relative rather than absolute. Each reading says which it is: measured is a real quantity, relative has no reference to compare against, and assumed rests on a stated constant.

Signals

A birdseye map of what actually reaches this spot, measured while you walk. Position comes from counting steps and a compass, so the map stretches and drifts; walk back to where you started and say so, and it corrects itself.

  1. Stand still. Press Start walking.
  2. Walk the space at a steady pace.
  3. Return to the start and close the loop.
  4. Read where the channel holds up.
A web page cannot read WiFi or mobile signal strength. There is no browser API for it: no RSSI, no network name, no cell, and navigator.connection cannot even tell WiFi from mobile. Anything drawn here from those would be invented. What is mapped instead is measured: this app's own 17.0 to 18.6 kHz channel, the noise it sits in, and the magnetic field.

Nothing walked yet.

0 steps
- -

Stride is guessed from your cadence and varies by tens of percent between people, so the scale of this map is the least certain thing on it. Closing the loop fixes the drift, not the scale.

Sync

Two phones, one clock, no network. A chirp there and back measures how far apart their clocks are; a few of them measure how fast the two are drifting away from each other.

  1. Link the two devices first.
  2. Open this page on both.
  3. Press Sync. They chirp at each other.
  4. Fire together, and film the proof.

Offset

not measured

Two timestamps cross the sound link. Nothing leaves the room.

The measurement

Same frame?

Fire together

Both screens go white at the same instant on the shared clock. Film the two phones with a third camera: if the sync is real they land in the same frame, and at 30 frames a second that frame is 33 ms wide. The offset above is measured through the microphones and owes nothing to the hardware. The flash has to go out through a screen, so it carries whatever the two display pipelines add - nothing on two of the same phone, tens of milliseconds across a phone and a laptop.

Map

Every device chirps in turn and the others answer, each in its own slot. One chirp gives one device its distance to everyone in earshot, and the distances draw the room.

  1. Link the devices, then open this page on each.
  2. Press Start on all of them.
  3. Watch the map fill in as they hear each other.

Not started.

The map

Distances

Distances fix the shape and nothing else. Where the room is, which way it faces, and whether it is the right way round are all unknowable from sound alone - a room and its mirror image measure identically - so this device is drawn at the centre and Flip swaps the handedness.

Check this device

Most of fyzx rests on a speaker that can make 18 to 21 kHz and a microphone that can hear it. Plenty of phones cannot do either. This chirps at itself and tells you what will work here, before you take two devices into a room and find out the slow way.

Estimated reach

not checked

What works here

Reach is estimated, not measured: sound pressure falls as one over distance, the speaker and microphone are about 10 cm apart, and the detector gives up at four to one. It ignores the room, which helps, and it is taken on the device's best axis, which flatters it. Treat it as an order of magnitude - the difference between "not at all" and "across a room" is a hundredfold, and nothing subtler matters.

Floor plan

A chirp says how far away the nearest wall is. The compass says which way you were facing. Your steps say where you were standing. Put the three together from a few spots and the room draws itself.

  1. Stand still. Press Sweep here.
  2. Turn slowly, all the way round.
  3. Walk a few steps. Sweep again.

Not started.

The plan

The beam is 60 degrees wide, so one sweep from one spot draws arcs rather than walls: a return says something is three metres away somewhere in a wide cone. Sweeping from a second spot looks straight through the first spot's arcs and rubs out everything that was not really there. Metre-scale honest, centimetre-scale fiction, and it reaches seven metres.

Dead drop

The screen only shows ciphertext. A photograph of it gives nothing.

  1. Pick a passphrase both devices know.
  2. Add a message, or attach a file.
  3. Seal and send, or seal and save.
  4. They type the same passphrase.

Nothing sealed.

Split a picture

The passphrase above, made visible: the keystream, and the picture with that keystream subtracted from it. A demonstration only, and it goes one way. To send a picture somebody can open, use Scatter.

A picture becomes two planes.

Nothing split.

Opened here

Sealed arrivals land here.

Scatter

A picture out as noise, and a way back. The phrase is minted here, eighty bits. Send it separately from the picture.

  1. Choose a picture; it leaves as noise.
  2. Save the picture, copy the phrase.
  3. Send the two by different routes.
  4. They gather it with the phrase.
Scatter one picture in, noise out

A picture leaves as noise.

Detail

Nothing scattered.

Gather one noise plus phrase, picture out

A scattered picture, and its phrase.

Nothing gathered.

Send the file, never a photo of it. A re-encode or a resize destroys it, and the app says so rather than hand back noise. What comes back is a dither, which is all three bits a pixel can hold.

Share

Each batch asks: re-encode, or send the original. To send text, use Comms.

  1. Add photos from this device.
  2. Choose re-encoded, or the original.
  3. Point their camera at this screen.
  4. Broadcast, for more than one camera.
Watching
-
Confirmed
0

Payment request

  1. Pick the chain and paste an address.
  2. Add an amount, if you want one.
  3. They scan the code, or copy the URI.
URI

-


Air-gapped signing

  1. Paste the unsigned PSBT or transaction.
  2. Check the inputs, outputs and fee.
  3. Send to the signer, or show UR.
  4. The signed one comes back the same way.

Never type a seed phrase or a private key into any page, including this one. Transactions and addresses only.

Send

  1. Drop, paste, or choose a file.
  2. Point their camera at this screen.
  3. Hold still; the chunk map fills.
  4. It verifies, then saves over there.

Drop a file here, paste, or .

QR codes. Nothing uploads.

This screen

Frame
hello
Version
-
Payload
-
Rate
-

This camera

- 0 fps 0 frames
Point it at the other screen

Back up

Everything you choose becomes one zip. That is what everything below works on.

  1. Choose files. They become one zip.
  2. Save it, copy it, or encode frames.
  3. Restore below, from text or frames.

No container yet.

Restore from frames

Exported frames, screenshots, or straight-on photos. Order and gaps do not matter. Angled shots are not read.

Restore from text

Save as a video

Any sufficient subset of frames rebuilds the file, so the reel survives a re-encode. Reading one back plays the whole video.

Frames
-
Length
-
Per frame
-
Grid
-

No container yet.

Role
Behaviour

Frames not decoding? Lower the version, or raise ECC.

Log

Everything measured on every page lands here. Copy or share it to get the numbers off the phone after a test - the last 2000 lines go, not just the ones still on screen.