BEFLIX Studio

Ken Knowlton's 1963 Animation Language

In 1963, Ken Knowlton built BEFLIX at Bell Labs — the first language designed for making films with a computer. It painted 252×184 grids in 8 shades of gray, and artists like Stan VanDerBeek used it to create some of the earliest computer-generated films.

Create like it's 1963 or 2026 — the choice is yours.

1
Browse the Examples to see what BEFLIX can do
2
Pick the 1963 tab or the 2026 tab and make something
3
Hit Play and watch your film come to life

BEFLIX Studio v1.2.1

A Recreation of Ken Knowlton's 1963 Animation Language

252 × 184

1. Try an example: Examples tab → Run

2. Or type in the Editor:

CLEAR 0
TEXT 60 40 "HELLO" 7 3
FRAME 24
DISOLV 4 18 SI
TEXT 40 80 "WORLD" 7 3
WAIT 24
FADE 0 12

3. Ctrl+Enter to compile → Space to play

4. Change palette and render mode in the Display tab

CLEAR [level] — fill grid (default 0)
PAINT x y w h level — filled rectangle
LINE x1 y1 x2 y2 level — straight line
CIRCLE cx cy r level [FILL] — outline or filled
ARC cx cy r start end level [FILL] — arc or wedge
TEXT x y "str" level [scale] — bitmap text, scale 1-5
BORDER x y w h thickness level — rectangular border
COPY sx sy w h dx dy — copy region
INVERT [x y w h] — flip levels 0↔7
SCROLL dx dy — shift grid, vacated = black
NOISE x y w h [min max] — random levels in region
TRANSLAT t0..t7 [x y w h] — remap all 8 levels
GROW ns1 ns2 ns3 [x y w h] — cellular automaton spread
SMOOTH [x y w h] — 2×2 majority vote
BLOW x y w h factor — mosaic-textured magnify
ZOOMIN x y w h factor — pixel-replicate zoom
REDUCE x y w h factor — average-block shrink
STRECH x y w h H|V factor — stretch along axis
PRESS x y w h H|V factor — compress along axis
COLUM x w U|D amount — cyclic column shift
ROTATE x y w h U|D|L|R amount — cyclic region shift
FRAME [count] — capture grid as frame(s)
WAIT count — same as FRAME (semantic pause)
DISOLV level frames [F|SI|SO|R|L] [x y w h] — dissolve
DISSOLVE level frames [x y w h] — random dissolve
FADE level frames — smooth fade toward level

At 12 fps: FRAME 12 = 1 second, FRAME 24 = 2 seconds

REPEAT count ... END — loop, nestable
IFANY/IFALL/IFNONE (scanner op val) ... END
Operators: E (=) NE (≠) G (>) L (<) GE (≥) LE (≤)

Scanners A-Z — virtual pointers on the grid:

SET scanner x y — position scanner
MOVE scanner dir n — U D L R UR UL DR DL
WRITE scanner level — write at position
READ scanner — read grid value into register

Areas & subroutines:

AREA name x y w h — named region
DEF name ... END — define subroutine
CALL name — execute subroutine
CONFINE scanner area / FREE scanner
SCAN area WRITE level / SCAN area READ scanner
Ctrl+Enter — Compile   Ctrl+S — Save   Ctrl+G — Locate code/frame
Space — Play/Pause   Left/Right — Step frame   Home/End — First/Last
Frame 0 / 0
BEFLIX Editor

Create Palette