Skip to main content
Back to Showcase

LLM Cinema: A Small Model Directs ASCII Films

Author:ConductorAILabsModel:MiniCPM3-4B

A small model writes and directs ASCII-art films in the browser

LLM Cinema is an ASCII movie theater in the browser. At its heart is a small model called Cinema — a LoRA fine-tuned MiniCPM3-4B — that writes, draws, and directs original short films in ASCII, and plays them right in the page, streaming frame by frame. No video, no sound. Just imagination, one frame at a time.

LLM Cinema share image

From a single concept it writes a 9-beat, roughly 90-second film: it invents the story, draws every character in ASCII, picks the terrain (water shimmers, grass, snow, lava…), the weather and time of day, camera moves (pan / push / shake), and a feeling for each character — then stages and plays it on a little charcoal terminal.

Try it​

  • 🎬 Make a film — type any concept (or hit Surprise) and watch Cinema write, draw, and play an original film live.
  • 🍿 Gallery — hand-picked films that replay instantly, even before the model wakes.
  • 🔁 Replay the current film, or use ⛶ Fullscreen on mobile for a cinema view.

How it works​

  • Cinema (LoRA fine-tuned MiniCPM3-4B) emits a strict-JSON "movie script": title, logline, and shots (narration, cast, action, setting, camera, mood, dialogue).
  • A from-scratch ASCII engine resolves each character (a sprite library plus a draw-on-demand model for anything new), composes the scene with z-ordered occlusion, textured floors and set dressing (sun/moon, clouds, stars, trees), then animates and subtitles it.
  • A custom gr.Server frontend streams frames over SSE onto a cinema-hall backdrop, with reactive lighting that mirrors the on-screen action.
  • Optionally, the director model can run entirely on your machine through the llama.cpp runtime (GGUF) — no cloud APIs.

The model and training pipeline stay private; this app is the demo.

Two ways to run it​

The hosted Space generates live via a cloud endpoint so you can try it instantly in the browser. The project also ships a fully off-the-grid build that runs the 4B model locally through llama.cpp, which the author treats as the primary way to run it.

Off the grid (local)​

The model serves locally via llama.cpp, exposing an OpenAI-compatible endpoint that the app points at — no cloud, no keys:

Bash
pip install -r requirements-local.txt
# serve the local GGUF model (OpenAI-compatible, llama.cpp) on :8000
MODEL=./models/cinema-q4_k_m.gguf python serve_llamacpp.py
# then, in another shell, point the app at it and open the cinema:
export CLAUDEMOVIES_LLM_URL=http://localhost:8000/v1
export CLAUDEMOVIES_LLM_KEY=local # any non-empty string; not checked
export CLAUDEMOVIES_LLM_MODEL=cinema
python server_app.py

Full setup (GGUF conversion and quantization, llama.cpp build) is in LOCAL_LLAMACPP.md. The Gallery plays even with no model running — its films are pre-written — so the page always shows something instantly.

Hosted demo (optional fallback)​

The same app can point at any hosted OpenAI-compatible endpoint via Space secrets (CLAUDEMOVIES_LLM_URL / _MODEL / _KEY); nothing is committed to the repo. This is a convenience for the live link — the off-grid local run is the real thing.

Hackathon submission​

LLM Cinema is entered in the Build Small Hackathon's An Adventure in Thousand Token Wood track — something delightful that wouldn't exist without AI. The model is load-bearing: it writes the story, draws every character, and directs the staging. Everything runs on the 4B MiniCPM3-4B, under the 32B cap and under the 4B Tiny Titan bar.

Bonus badges:

  • Off-Brand — a fully custom gr.Server frontend (cinema-hall backdrop, ASCII projected through the screen, reactive lighting).
  • Off the Grid — can optionally run fully local via llama.cpp, with no cloud APIs.
  • Llama Champion — the model runs through the llama.cpp runtime (serve_llamacpp.py).
  • Field Notes — see FIELD_NOTES.md.
  • Open Trace — the agent's scrubbed, secret-free build trace: traces/AGENT_TRACE.md.

Built by ConductorAILabs.

Project info

Model
MiniCPM3-4B
Author
ConductorAILabs