CRT ASCII Terminal: Style Prompt

Everything on screen is a real character on a monospace grid, lit by the phosphor of an old monochrome CRT. References (grammar only): 1970s–80s monochrome terminals and teletype logs (typed output, cursor, status lines); ASCII art and demoscene text-mode pictures (images from glyph density); analog-synth film scores of the early 1980s (cold pulse, patient drones). Copy no film's interface text, fonts or logos, and use no real agency names.

1. Essence, and what it is not

A single monochrome terminal screen: P3 amber (or P1 green) phosphor glowing on dark glass, curved at the edges, with scanlines. Every image, including title, landscape, face, room and subtitles, is made of real glyphs placed on a character grid and chosen by ink density. The film has one camera, the screen itself. It moves only by changing the font size of the grid: bigger characters push in, smaller characters pull out.

The mood is cold, patient and machine-calm: typed text, a blinking cursor as suspense, and one warm surprise.

Never fake it with an image plus an "ASCII filter". Characters must be drawn as characters on a grid. Not a hacker-movie green rain, not a pixel-art game (no sprites, no free pixels), not a sci-fi HUD (no vector lines, no free-floating panels).

2. Materials & rendering

3. Colour logic

4. Type & subtitles

5. Motion quality

6. Camera grammar

The only camera is the grid scale, plus CRT power states and one possible shot outside the screen.

Move What it expresses Can serve
Static 80-column terminal Waiting, procedure, machine time a countdown; a queue; a log being read
Push in (cells grow) Attention, intimacy one line of dialogue; a name; a decision typed
Pull out (cells shrink) Context, scale a title becoming line 1 of a list; one entry among thousands
Push into a single glyph Hidden depth; what a symbol is made of a letter made of messages; a pixel made of people
Scroll (the buffer moves) Accumulation, time passing years of records; a changelog; a feed
Clear screen / hard redraw A cut; a new state a reboot; a new chapter; a crash
Text becomes image (grid shrinks as glyphs fall) Words turning into world a letter becoming a face; data becoming a map
Power on / off, degauss Birth, death, sleep, shock a machine waking; an ending; a jolt
Pull back off the glass into a drawn room The screen is an object in a world who is reading; where the machine is

Opening and ending come from the topic. Framing: text stays in the safe area inside the curvature; keep the LOG strip clear. Transitions happen on the screen (clear, redraw, scroll, power), never a crossfade between two screens.

7. Sound palette

8. Native moves

A menu: use the ones your story needs.

9. Pitfalls of the medium

10. Engine

In demo/: term.js (glyph atlas, grid drawing, density ramps, image → cells), art.js (procedural grayscale scenes for the negative), crt.js (monochrome phosphor CRT post, WebGL2), main.js (timeline, events EV, subtitles SUBS), voice_fx.py (machine-voice processing), mix.py (synthesised foley + ducking), music/score.py (analog-synth score), tools/subs.mjs (export window.SUBS). File map and commands: DEMO.md.

11. Variation space

You decide who types, what the screen is for, the grids, the opening, the ending, the camera (grid) path, the pacing and whether the second colour appears at all. All far from our demo:


How our demo was made (story, shots, score, end card, build): DEMO.md. Read it after your treatment exists.