Skip to content

Releases: FNWTalon/LIZARD

LIZARD 0.3 (alpha)

LIZARD 0.3 (alpha) Pre-release
Pre-release

Choose a tag to compare

@FNWTalon FNWTalon released this 22 Oct 16:33

The third alpha of the Android app. It receives a file shown as a LIZARD code on another screen, and sends one the
same way. It decodes on the GPU through Vulkan where the phone runs it, else on the CPU.

  • Android 10 or later, arm64.
  • Install: download lizard-0.3-alpha.apk and open it; Android asks to allow installs from that source. The app has a
    new ID, dev.fosslabs.lizard, so it installs beside 0.2 rather than over it; uninstall 0.2 to keep one.
  • The format is 0.2's: each reads the other's codes. Several files sent to 0.2 arrive as one .tar. Send from
    fosslabs.dev, which serves this release's sender, or from the desktop sender built from this
    commit.
  • Measured on one phone (Samsung S26 Ultra), by hand, two codes side by side at 60 pictures a second on a stock 1080p
    office monitor: through the phone's 5x telephoto at 9x, from about 3.3 m, 2.4 MB/s median and 2.9 max, logged. Close
    up the rate is as in 0.2, up to about 4 MB/s. The README says what bounds that.
  • Built from d2b41ca. The third-party licenses it carries are in LICENSES.txt.

Since 0.2:

  • Send several files or a folder at once: they go as one tar, and the app unpacks a received one into a folder.
  • Both decoders fit the lens about the camera's optical axis, so wide and zoomed lenses read more of the code: on a
    replay through the main camera at 2.2x, 2.5 times the blocks on the GPU.
  • The GPU decoder takes about half the time a frame: the finder's first round on the coarser levels, the LDPC's
    violated checks counted from a bitmap, the first pass at the picture size below, independent work dispatched side by
    side, and the LDPC's form chosen on each device by timing.
  • The zoom covers each camera's whole range, the telephoto included, and is kept for each lens in each layout.
  • A sender shows a file's compressed size as soon as it is picked.
  • No network permission: the app never uses the network.
  • The live rate counts only the blocks a file takes.
  • Inter and JetBrains Mono as the type; the launcher mark at 70% of its square.
  • The library adds a WebAssembly build for engines without SIMD.

An alpha: the format still changes, and a sender and a receiver need the same release.

LIZARD 0.2 (alpha)

LIZARD 0.2 (alpha) Pre-release
Pre-release

Choose a tag to compare

@FNWTalon FNWTalon released this 10 Oct 18:54

The second alpha of the Android app. It receives a file shown as a LIZARD code on another screen, and sends one the
same way. It decodes on the GPU through Vulkan where the phone runs it, else on the CPU.

  • Android 10 or later, arm64.
  • Install: download lizard-0.2-alpha.apk and open it; Android asks to allow installs from that source. It is signed
    with the same development key as 0.1, so it installs over it.
  • It does not read 0.1's codes: the format changed (below). Send from fosslabs.dev, which
    serves this release's sender, or from the desktop sender built from this commit.
  • Measured on one phone (Samsung S26 Ultra), two codes side by side from the desktop sender at 60 pictures a second on a
    1080p monitor: 3.8 MB/s median and 4.0 max over 13 minutes. The README says what bounds that.
  • Built from 5033648. The third-party licenses it carries are in LICENSES.txt.

Since 0.1:

  • The code rate follows the frequency: four LDPC codes, from 7/8 on the inner sub-channels to 1/2 on the outer, with
    optimised tables.
  • A fourth ring size, 256 band cells a side, for a camera held still close to the screen. The 128 stays the default.
  • Files are compressed with zstd, a 4 MiB chunk at a time, where that makes them smaller.
  • A file's header and manifest are spread over the frame, so a large file no longer stalls when one part of the code
    reads badly.
  • The camera's phase is held to the display's by pilots in every picture, always on.
  • The camera's image enhancements (edge enhancement, hot pixel correction and the like) are off where the lens allows.
  • The GPU decoder no longer waits to fill a batch.
  • Sending paints ahead on the GPU and presents on a fixed schedule, every picture one refresh.
  • A received file shows its time and speed; deleting it makes the receiver forget it whole.
  • Camera settings are kept per lens.

An alpha: the format still changes, and a sender and a receiver need the same release.

Lizard 0.1 (alpha)

Lizard 0.1 (alpha) Pre-release
Pre-release

Choose a tag to compare

@FNWTalon FNWTalon released this 04 Oct 21:36

The first alpha of the Android app. It receives a file shown as a Lizard code on another screen, and sends one the
same way. It decodes on the GPU through Vulkan where the phone runs it, else on the CPU.

  • Android 10 or later, arm64.
  • Install: download lizard-0.1-alpha.apk and open it; Android asks to allow installs from that source.
  • Signed with a development key: a later release signed with another key will need this one uninstalled first.
  • Measured on one phone (Samsung S26 Ultra): 1.3 to 1.6 MB/s from an ordinary monitor. The README says what bounds that.
  • Built from bee0ee7. The third-party licenses it carries are in LICENSES.txt.

An alpha: the format still changes, and a sender and a receiver need the same release.