What is Atomic State?
Atomic State is MonoTermβs solution for flicker-free terminal rendering. It ensures your terminal only displays complete, validated frames.The Problem We Solved
Copy
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Have you ever seen this in a terminal? β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β $ npm install β β
β β β β
β β [##########..........] 50% β β
β β ^ β β
β β βββββββ΄βββββββ β β
β β β FLICKER! β β β
β β β FLASH! β β β
β β ββββββββββββββ β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Progress bars flicker. Colors flash. Text jumps around. β
β This happens because the terminal renders INCOMPLETE data. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Why Does This Happen?
Copy
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β TRADITIONAL TERMINAL β
β β
β Program Terminal β
β ββββββββββββ ββββββββββββ β
β β β "Hello" β β β
β β vim βββββββββββββββ xterm β β
β β β β β β
β ββββββββββββ ββββββ¬ββββββ β
β β β
β βΌ β
β βββββββββββββ β
β β RENDER β β
β β INSTANTLY β β
β βββββββββββββ β
β β
β β
β PROBLEM: What if "Hello" arrives as "Hel" + "lo" in two pieces? β
β β
β β
β Program Terminal β
β ββββββββββββ ββββββββββββ β
β β β "Hel" β ββββ RENDER "Hel" (incomplete) β
β β vim βββββββββββββββ xterm β β
β β β "lo" β ββββ RENDER "lo" (looks weird)β
β ββββββββββββΌββββββββββββββ β β
β β ββββββββββββ β
β β
β β
β Result: You see "Hel" flash before "Hello" appears = FLICKER β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How Atomic State Fixes This
Copy
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β MONOTERM ATOMIC STATE β
β β
β β
β Program Atomic State Terminal β
β ββββββββββββ ββββββββββββββ ββββββββββββ β
β β β β β β β β
β β vim βββββββββ WAIT ββββββββββ xterm β β
β β β β for β β β β
β ββββββββββββ β complete β ββββββββββββ β
β β frame β β
β ββββββββββββββ β
β β
β β
β HOW IT WORKS: β
β β
β "Hel" arrives βββββββ WAIT... (incomplete) β
β β
β "lo" arrives βββββββ COMPLETE! β
β β β
β SEND TO TERMINAL β
β β β
β RENDER "Hello" (perfect!) β
β β
β β
β Result: Terminal ONLY sees complete frames = NO FLICKER β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The βAtomicβ Concept
Copy
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β "ATOMIC" = Cannot be split β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β In physics: Atom = smallest unit (indivisible) β β
β β β β
β β In MonoTerm: Atomic Frame = smallest complete screen updateβ β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β β
β Traditional: Send anything as soon as it arrives β
β β
β DATA βββ [A] βββ [B] βββ [C] βββ SCREEN β
β β β β β
β render render render (3 renders = potential flicker) β
β β
β β
β Atomic State: Wait until complete, then send once β
β β
β DATA βββ [A] βββ [B] βββ [C] βββ [ABC] βββ SCREEN β
β β β β β β
β wait wait wait RENDER (1 render = no flicker) β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Before and After
Copy
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β BEFORE (Traditional) AFTER (Atomic State) β
β β
β βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ β
β β $ htop β β $ htop β β
β β β β β β
β β CPU: [##...] 40% β β CPU: [####.] 80% β β
β β β β MEM: [###..] 60% β β
β β ^ flicker! β β SWP: [#....] 20% β β
β β CPU: [####.] 80% β β β β
β β MEM: [###..] 60% β β Smooth and stable β β
β β β β No flickering β β
β β ^ partial update β β Clean updates β β
β β SWP: [#....] 20% β β β β
β βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ β
β β
β Multiple partial Single complete β
β renders visible render only β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Benefits
Copy
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β [OK] NO FLICKER β β
β β Progress bars, htop, vim - all render smoothly β β
β β β β
β β [OK] NO GLITCHES β β
β β Colors and text always appear correctly β β
β β β β
β β [OK] FASTER RESPONSE β β
β β Less unnecessary rendering means faster overall β β
β β β β
β β [OK] LESS BATTERY USAGE β β
β β Fewer screen updates = less GPU work β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How Frames Are Detected
MonoTerm uses the BSU/ESU protocol (DECSET Mode 2026) to detect frame boundaries.Copy
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β THREE DETECTION PATTERNS β
β β
β β
β PATTERN 1: BSU/ESU Markers (Standard Protocol) β
β βββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β BSU ββββββ [content] ββββββ ESU β
β β β β
β "Start" "Complete" β
β β
β β
β PATTERN 2: Screen Clear Detection β
β ββββββββββββββββββββββββββββββββββ β
β β
β CLEAR ββββββ [wait] ββββββ new content β
β β β
β "Redraw coming" β
β β
β β
β PATTERN 3: Cursor Hide/Show β
β βββββββββββββββββββββββββββ β
β β
β HIDE ββββββ [content] ββββββ SHOW β
β β β β
β "Updating..." "Done!" β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Summary
Copy
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ATOMIC STATE IN ONE PICTURE β
β β
β β
β Program Output Your Screen β
β β
β β ^ β
β β β β
β βΌ β β
β βββββββββββββββββ β β
β β β β β
β β ATOMIC β Only when β β
β β STATE ββββββββββββββββββββββββββ β
β β β complete β
β β "Gatekeeper" β β
β β β β
β βββββββββββββββββ β
β β
β β
β Waits for Shows only β
β complete frames perfect frames β
β β
β β
β "Atomic State is like a quality inspector that only lets β
β perfect products reach the customer." β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Tech Stack
Built with Rust for memory-safe performance, using Alacrittyβs VTE Parser for escape sequence processing.