Ternimal — имитация формы жизни в терминале

Любой линуксоид довольно часто открывает терминал.  У некоторых он даже открыт постоянно. Не потому что там какие-то проблемы нужно постоянно решать. Просто терминал удобен. Как бы дико это не звучало, но когда к нему привыкнешь, запомнишь сочетания клавиш, научишься паре команд, узнаешь что можно настроить историю ввода команд и задать свои алиасы, то терминал становится продолжением рабочего стола, а иногда и фактической его заменой. Поэтому не стоит удивляться тому, что для командной оболочки появляются вещи из разряда забав — just for fun. Одна из таких вещей Ternimal — симулятор формы жизни.

Ternimal (обратите внимание на орфографию) — это программа, которая рисует анимированную форму жизни в терминале с использованием блоков символов Unicode. Он работает в большинстве терминальных эмуляторов и с большинством моноширинных шрифтов.С практической точки зрения, программа не очень полезна. Однако она содержит довольно много классных технологий и математики:

  • Рендер «Glow», способный работать с 1000 кадрами в секунду (если терминал может справиться с этим)
  • Динамическая генерация дифференцируемого на всём протяжении пути движения, состоящего из круговых дуг
  • Скелетная деформация вдоль пути
  • Описание формы на основе Фурье, позволяющее реализовать различные формы тела и анимировать их

Ternimal также является примером минимализма и сдержанности. Написанный всего в 1000 строк на Rust, он не имеет зависимостей и потребляет очень мало ресурсов: 400 кБ на диске, 3 МБ ОЗУ и 4% одного ядра процессора с параметрами по умолчанию. Он реализует свои собственные операции линейной алгебры с нуля, а также анализ основных команд и простой генератор случайных чисел.

Сборка

Ternimal не имеет зависимостей, кроме стандартной библиотеки Rust, и не требует Cargo для сборки. Нужен только установленный rustc (>= 1.20), так что Ternimal может быть собран так:

git clone https://github.com/p-e-w/ternimal.git
cd ternimal
rustc -O ternimal.rs

Использование

По сути, Ternimal не делает ничего кроме окраски блоков вокруг движущегося по извилистому пути позвоночника. Есть много параметров управляющих этим процессом, однако почти все их можно изменять из командной строки.

Это делает систему очень гибкой. Далее — несколько примеров как это делать:

«Анаконда»

./ternimal length=100 segments=50 thickness=1,4,1,0 radius=6,12 gradient=0:#666600,0.5:#00ff00,1:#003300

«Рой»

./ternimal length=200 segments=50 thickness=0,4,19,0

«Радуга»

./ternimal length=20 thickness=70,15,0,5 padding=10 radius=5 gradient=0.03:#ffff00,0.15:#0000ff,0.3:#ff0000,0.5:#00ff00

«Черная дыра»

./ternimal speed=10 length=100 segments=5 thickness=13 gradient=0.5:#000000,0.8:#ffffff,1:#000000

В итоге: Ternimal — интересная и простая программа показывающая возможности языка Rust и командной строки.

Mirivlad

Скромный труженик консоли и окошек.

Share
Published by
Mirivlad

Recent Posts

Как вернуть доступ к аккаунту VK (ВКонтакте)?

Восстановить доступ к странице ВКонтакте можно относительно просто. И для этого даже не потребуется помощь…

1 год ago

Реверс-инжиниринг электроники и ПО

Реверс инжиниринг электроники и программного обеспечения — увлекательная и важная дисциплина, играющая ключевую роль в…

2 года ago

Что лучше Apple iPhone 14 или iPhone 13: сравниваем модели

Рынок смартфонов не стоит на месте и каждый год пополняется новыми моделями. Компания Apple традиционно…

3 года ago

Как открыть интернет-магазин с нуля в 2026 году?

Запуск онлайн-бизнеса может показаться сложной задачей, но на самом деле этот процесс можно существенно упростить,…

3 года ago

Как проверить текст на уникальность?

Если Вы хотите продвинуть свой сайт в поисковых системах, одним из самых важных аспектов является…

3 года ago

ТОП лучших смартфонов Samsung 2026 года: рейтинг по цене и качеству

Корейская компания Samsung зарекомендовала себя на потребительском рынке как производитель флагманов, так и бюджетных смартфонов.…

3 года ago