1. Блог Админа
  2. >
  3. Компьютерное
  4. >
  5. Ternimal — имитация формы...

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

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

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

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

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

Сборка

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

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

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

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

«Анаконда»

«Рой»

«Радуга»

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

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

Автор: Mirivlad

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

Комментарии:

Добавить комментарий