git404hub

what is aval fr?

pixel-point/aval — explained in plain English

Analysis updated 2026-05-18

1,282TypeScriptAudience · developerComplexity · 4/5Setup · hard

tl;dr

A web video format and player for short animations with named states and instant, frame-accurate transitions, encoded across multiple codecs for broad browser support.

vibe map

mindmap
  root((AVAL))
    What it does
      Plays state based animations
      Picks best video codec
      Instant state transitions
    Tech stack
      TypeScript
      WebCodecs
      FFmpeg
    Use cases
      Interactive web animations
      Multi codec video delivery
      Custom error fallback
    Audience
      Web developers
      Frontend engineers
      Motion designers
    Setup
      Install player and compiler
      Prepare animation frames
      Compile to AVAL files

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Add an interactive animation to a website that can jump between named states instantly.

VIBE 2

Ship one animation encoded in multiple video codecs so it plays efficiently across browsers.

VIBE 3

Build custom error handling for browsers that cannot play a required codec.

VIBE 4

Compile raw animation frames into a ready-to-use set of web video files.

what's the stack?

TypeScriptWebCodecsFFmpegNode.js

how it stacks up fr

pixel-point/avalanthropics/cwc-workshopsextend-hq/ui
Stars1,2821,2791,255
LanguageTypeScriptTypeScriptTypeScript
Last pushed2026-06-262026-07-03
MaintenanceActiveActive
Setup difficultyhardmoderateeasy
Complexity4/53/52/5
Audiencedeveloperdeveloperpm founder

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · hard time til it works · 1h+

Requires Node.js 22.12+ and a caller-installed FFmpeg with libaom-av1, libvpx-vp9, libx265, and libx264 encoders.

in plain english

AVAL is a new file format and small software runtime for putting short, prerendered animations or interactive video clips on a website. Instead of a normal video file that just plays start to finish, AVAL clips can hold multiple named states, like idle, hover, or success, and the browser can jump between them instantly without needing to search through the video frame by frame. Each animation gets encoded into several different video formats, called codecs, such as AV1, VP9, H.265, and H.264. The browser automatically tries the newest, most efficient format first and falls back to older ones if it does not support the newer codec, always in the same fixed order. This way the same animation plays correctly across a wide range of browsers and devices without the website author having to guess which format to use. Because not every browser supports every codec, and some browsers may not support this technology at all, AVAL requires the website itself to decide what happens when playback fails. It does not show a fallback image or message on its own. Instead it raises an error that tells the website exactly what went wrong, and the developer building the site chooses what to display instead, whether that is an ordinary video, a static image, or nothing at all. To get started, a developer installs two small packages, one for playing the animation in the browser and one for compiling source animation frames into the AVAL format, then runs a single command to generate a working example project. Building a real animation involves preparing raw frames and describing the different states and transitions in a project file, which the compiler turns into a set of ready to use video files for each supported codec. The project is made up of several smaller packages handling the state logic, the file format itself, the compiler, and the browser player, and requires a fairly recent version of Node.js to develop or build. Encoding videos also requires the developer's own copy of the FFmpeg video tool already installed on their machine.

prompts (copy fr)

prompt 1
Help me set up a new AVAL animation project using the compiler and player packages.
prompt 2
Explain how AVAL picks between AV1, VP9, H.265, and H.264 in the browser.
prompt 3
Show me how to define named states and transitions for an AVAL animation.
prompt 4
How do I handle playback errors when a browser can't play any AVAL codec?

Frequently asked questions

what is aval fr?

A web video format and player for short animations with named states and instant, frame-accurate transitions, encoded across multiple codecs for broad browser support.

What language is aval written in?

Mainly TypeScript. The stack also includes TypeScript, WebCodecs, FFmpeg.

How hard is aval to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is aval for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.