Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ефект "Матриці" у терміналі (Matrix Terminal Effect)

Python-скрипт, який створює ефект "цифрового дощу" (падаючого зеленого коду) з культового фільму "Матриця" безпосередньо у вашому терміналі.

Скрипт використовує стандартні модулі Python і не потребує встановлення сторонніх бібліотек.

✨ Особливості

  • Автентичний вигляд: напівширинна японська катакана (саме її використали у фільмі) з домішкою цифр і знаків. Напівширинні символи моноширинні, тому сітка не "розповзається" — повноширинні (アカサ) займають два стовпці й ламають вирівнювання.
  • Плавна анімація: 30 кадрів на секунду зі стабілізацією темпу — час рендера кадру вираховується з паузи, тому швидкість не залежить від потужності машини.
  • Спокійний темп: символи не падають, а плавно опускаються — близько 3 рядків на секунду, тому шлях через екран займає понад десяток секунд.
  • "Живий" дощ: кожен струмок рухається зі своєю швидкістю (0.05–0.16 клітинки за кадр), тому потік не виглядає як "строй".
  • Довгий хвіст із згасанням: слід завдовжки 10–34 символи, градієнт із 10 відтінків зеленого (ANSI 256) від яскраво-білої "голови" краплі до майже чорного кінця. Довжина задається в клітинках і не залежить від швидкості струмка.
  • Мерехтіння: частина видимих символів змінюється на льоту, як у фільмі.
  • На все вікно: розмір полотна беремо напряму в терміналу через os.get_terminal_size(), тому кадр займає весь екран. Зміна розміру вікна підхоплюється на льоту.
  • Жодних залежностей: працює "з коробки" (тільки вбудовані os, random, shutil, sys, time).
  • Безпечне закриття: анімація йде в альтернативному буфері екрана, тому історія терміналу не затирається. Курсор і налаштування повертаються через finally — навіть якщо скрипт впаде з помилкою, а не тільки після Ctrl+C.

🚀 Як запустити

  1. Переконайтеся, що у вас встановлено Python 3.

  2. Відкрийте термінал у папці з файлом Martix_ver2.py.

  3. Виконайте команду:

    python3 Martix_ver2.py

    (або python Martix_ver2.py — залежно від налаштувань вашої операційної системи).

    Зверніть увагу на велику літеру M в імені файлу: на Linux регістр має значення.

  4. Щоб зупинити ефект і повернутися до звичайного терміналу, натисніть Ctrl + C.

⚙️ Налаштування

Усі "крутилки" зібрані на початку Martix_ver2.py — правити код не потрібно, достатньо змінити значення константи:

Константа Типове значення Що робить
FPS 30 Кадрів на секунду. Більше — плавніше (спробуйте 60), менше — економніше до процесора.
DROP_SPEED (0.05, 0.16) Швидкість руху в клітинках за кадр: мінімум і максимум. Зменшуйте, щоб дощ став ще повільнішим, (0.3, 0.8) дає різкий "злива"-режим.
TRAIL_LEN (10, 34) Довжина хвоста в символах.
SPAWN_CHANCE 0.0022 Густота дощу — шанс запустити нову краплю в порожньому стовпці за кадр. При типовому значенні одночасно активна приблизно половина стовпців.
FLICKER_RATIO 0.07 Наскільки активно мерехтять уже намальовані символи.
FIXED_SIZE None None — на все вікно терміналу. Задайте кортеж, напр. (120, 40), щоб зафіксувати розмір полотна.

Швидкість руху і плавність картинки — це різні речі: FPS відповідає за плавність, DROP_SPEED — за темп падіння. Щоб дощ став повільнішим, але не "смикався", зменшуйте DROP_SPEED, а FPS не торкайтеся.

🖥 Вимоги до терміналу

Скрипт використовує ANSI-ескейп коди для кольорів, керування курсором і альтернативного буфера екрана. Потрібен термінал із підтримкою 256 кольорів — це майже всі сучасні: iTerm2, Terminal.app, Windows Terminal, GNOME Terminal, Konsole, Alacritty, вбудовані термінали VS Code та PyCharm.

Для катакани потрібен шрифт із японськими глифами. Якщо замість символів видно порожні прямокутники (), поставте шрифт із підтримкою CJK — наприклад, Menlo, Cascadia Code, JetBrains Mono або Noto Sans Mono CJK.

⚠️ Примітка для користувачів Windows

  • Скрипт сам вмикає обробку ANSI-кодів у cmd.exe (виклик os.system("") при старті), тому кольори працюють і там.
  • Усе ж наполегливо рекомендується запускати його у Windows Terminal, сучасному PowerShell або у вбудованому терміналі вашого редактора коду — там краща підтримка кольорів і шрифтів з катаканою.

🔧 Як це працює

Екран описується трьома сітками однакового розміру: символ у клітинці, її вік у кадрах і час життя (через скільки кадрів вона згасне). Кожен кадр вік усіх видимих клітинок збільшується на одиницю, а колір вибирається за відношенням вік / час_життя — так виходить плавний градієнт хвоста.

Краплі — це окремі об'єкти, що знають лише позицію голови, швидкість і довжину сліду. Коли голова йде за нижній край екрана, крапля зникає, а її хвіст догасає самостійно, бо згасання прив'язане до клітинок, а не до краплі.

Кадр збирається в один рядок і виводиться одним викликом write() — код кольору дописується лише тоді, коли він змінюється відносно попередньої клітинки. Це зменшує кадр приблизно вп'ятеро й прибирає мерехтіння картинки.

About

Matrix

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages