An ecnivs labs project

Video from
ASCII.

Every frame is made of glyphs.

A Rust codec that builds pictures from colored ASCII symbols, then stores them with synchronized audio in a seekable .sci archive.

Research preview. Lower bandwidth remains the goal.

weftSCI playback

Loading SCI sample

0:00 / 0:00

Winter Drive

Prepared .sci, reconstructed from ASCII in this browser.

Keyboard shortcuts

Space / K Play or pause J / L Skip 10 seconds M Mute F Fullscreen T Theater

Two seconds of UVG-VCM Winter Drive, Ultra Video Group, Tampere University. Trimmed, resized and encoded as ASCII. CC BY-SA 4.0.

Download .sci (34.3 MiB)

The same frame, reconstructed

A closer look.

Original source beside Weft at 1080p60, four glyph layers and full RGB precision. Both images show frame 60, one second into the same clip.

Original Winter Drive source at one second
Original source 1920 × 1080
The same frame reconstructed from Weft ASCII compositions
Weft reconstruction 1920 × 1080

Open either image for the native-resolution view. Lossy fitting still changes fine detail. Watch the matched two-second previews.

Inside the codec

Symbols carry
the picture.

Fixed ASCII glyphs, RGB colors and reflections form layered compositions. The decoder reconstructs those compositions to draw every frame.

Read the .sci format
  1. Fit the glyphs

    The encoder fits source frames offline, choosing spatial groups and up to four glyph layers.

  2. Store the archive

    SCI holds the symbols, colors, presentation times, independent seek points and Opus audio.

  3. Play what was encoded

    Browser workers use the Rust WebAssembly decoder to reconstruct the prepared ASCII data.

Rust libraries and a CLI

Start encoding.

Use the portable codec in your application, or prepare media with the CLI and FFmpeg. Noncommercial use is free.

>_ weftEncode locally
$ weft encode input.mp4 output.sci
$ weft inspect output.sci

Weft is still in research. Current archives are larger than the tested conventional codecs, and sustained 2× playback across every tier remains unverified. Results and limits.