01 — Brand Identity
Logo & Mark
The GramWrite logo is a pairing of the wordmark and the living dot — the same dot that appears in the corner of your screen. The dot is the product; the wordmark is the signature.
Colour Palette
A cinematic palette grounded in deep blacks and aged paper, activated by a single green that signals life, attention, and correctness.
Typography
Three typefaces, each with a distinct role. The serif carries editorial authority. The monospace carries technical precision. The display carries the brand voice at scale.
Polish never.
Sensitivity: medium Debounce: 2.0s
// No cloud. No accounts. No rewriting.
The Living Dot
The dot is the entire UI. It communicates through colour and motion — never through text or popups while you write. Each state has a specific meaning and animation signature.
Brand Voice
GramWrite writes like a screenwriter, not a marketer. Short. Direct. Occasionally poetic. Always in service of the writer's experience.
"Your screenplay stays on your machine."
"One small dot. Click when it glows."
"GramWrite exists in the background."
"Supercharge your screenwriting workflow."
"Our revolutionary grammar engine helps you write better scripts faster."
"Sign up for early access today."
"It knows the difference between a slug and a sentence."
"A script doctor in the corner."
"The correction waits. You decide."
"Privacy-first AI-powered writing assistant."
"Boost productivity with smart suggestions."
"Join thousands of satisfied screenwriters."
02 — Configuration Dashboard
Settings Interface
The dashboard is the secondary experience — accessed only when you want to change something. It must feel like a professional tool, never a product. No upsells. No prompts. Just controls.
Built by Revanth Levaka — A Polymath & Film Maker
github.com/revanthlevaka/GramWrite
Your text is never logged, stored, or transmitted.
All inference runs locally on your hardware.
03 — Grammar Correction in Use
How It Looks While Writing
GramWrite analyses only dialogue and action lines — never sluglines, character names, or transitions. Errors are surfaced as underlines. Hover to see the suggestion. The panel on the right mirrors the floating dot experience.
Hover underlined text to preview corrections · Click Apply or Dismiss in the panel
Interface States
The three moments a writer interacts with GramWrite. Each is designed to be as brief as possible.
You're typing. GramWrite sees the keystrokes but stays completely silent. The dot is grey and motionless. The debounce timer hasn't fired. Nothing interrupts your flow.
You stopped typing for 2 seconds. The dot pulses blue — quietly indicating it's working. The LLM is running on your machine. In most cases this resolves in under 100ms.
04 — Technical Specifications
System Specs
Hard constraints for every version of GramWrite. These are not goals — they are requirements.
| Specification | Value |
|---|---|
| Inference target | < 100ms on qwen2.5:0.5b with Ollama running locally |
| Text extracted per check | Maximum 300 characters (configurable) |
| Debounce window | 2.0s default — fires after typing inactivity |
| Network calls | Localhost only — 127.0.0.1:11434 or :1234 |
| External requests | Zero |
| Memory footprint | ~60MB Python process + model VRAM (GPU) or RAM (CPU) |
| Python version | 3.10 or higher |
| UI framework | PyQt6 (cross-platform native windows) |
| Supported backends | Ollama ≥ 0.1, LM Studio ≥ 0.2 (OpenAI-compatible) |
| Recommended model | qwen2.5:0.5b — 400MB, ~50–80ms inference |
Fountain Parser Rules
| Element | Detected as | Grammar check? |
|---|---|---|
INT. OFFICE - DAY | Slugline | Never — structural element |
JOHN (all caps, short) | Character name | Never — proper noun |
(beat) / (quietly) | Parenthetical | Never — direction, not prose |
CUT TO: / FADE IN: | Transition | Never — keyword |
| Action paragraph | Action line | Light check — fragments preserved |
| Post-character prose | Dialogue | Full check — standard grammar applies |