strix

Crates.iostrix
lib.rsstrix
version0.1.1
created_at2025-12-21 11:45:08.411415+00
updated_at2025-12-21 22:11:59.663407+00
descriptionTerminal-based video synthesizer inspired by Hydra
homepagehttps://raphaelforment.fr
repositoryhttps://github.com/Bubobubobubobubo/strix
max_upload_size
id1997851
size319,705
Raphaƫl Forment (Bubobubobubobubo)

documentation

README

Strix

Strix Logo

Strix is an emulation of Hydra Synth for terminal emulators (Linux / MacOS / Windows). Forget everything you know about GLSL and high-definition rendering, you are going to see a lot of pixels. Strix runs good enough on modern terminal emulators. I've strived to reach feature parity with the base implementation, at least for the core set of functions and operators. This is a small personal project that I've been developing for fun and learning purposes. It's not intended to be a production-ready tool, but rather a way to explore the capabilities of terminal emulators and learn more about Rust and graphics programming. I do plan to use it for my own live performances :) I am following a simple philosophy for the development of this tool:

  1. emulate Hydra good enough (core syntax/semantics, core functions/operators)
  2. add goodies for my own enjoyment and/or comfort.

:warning: Warning :warning:: Despite my reluctance to support global capitalism and thereby finance a grimmer future, I have used a Large Language Model (Claude) to review and assist in writing some of the low-level code in this program. If you believe this program to be nefarious, please don't install it and blame me for using such tools. Rest assured that I personally do not align with what big AI companies and big tech want for our collective future. I am open to discussion about the ethics of using AI in the real of software development. I resort to LLMs for (bad?) pragmatic reasons: absence of funding for my work, lack of expertise/time in certain situations, debugging, curiosity, etc. I try to be as cautious and conscious about the potential impact of using such tools on society and the environment as can be. I am committed to using AI as responsibly and ethically as can be, and I encourage others to do the same. Never use an AI if you care to learn or build the future with integrity.

Features

Strix comes with the following set of features:

  • Core Hydra library: sources, colors, blend modes, etc.
  • Support for live webcam input and image import from disk.
  • Persistent memory, with 9 workspaces to switch between.
  • Integrated reference / documentation with live preview.
  • Ableton Link integration and tap tempo for beatmatching.
  • Headless mode: just type an expression and run it in the terminal.

Prerequisites

To run Strix, you need to install the Rust toolchain. You will also need a decent terminal emulator with true color support and graphic acceleration:

Terminal Platform URL
WezTerm Linux, macOS, Windows https://wezterm.org/
Ghostty Linux, macOS https://ghostty.org/
iTerm2 macOS https://iterm2.com/
Kitty Linux, macOS https://sw.kovidgoyal.net/kitty/
Alacritty Linux, macOS, Windows https://alacritty.org/

Because of the rusty_link crate, you will also need some C++ development tools to compile the program:

  • CMake 3.14+
  • Git (for submodules)

On MacOS:

  • Xcode Command Line Tools (xcode-select --install)

On Linux:

  • build-essential
  • libclang-dev
  • libasound2-dev
  • pkg-config

On Windows:

  • MSVC Build Tools (Visual Studio)
  • LLVM/Clang

Installation

You can install Strix on your system using the following command. Rust needs to be pre-installed:

cargo install --git https://github.com/Bubobubobubobubo/strix

Usage

Global

Key Action
Ctrl+D Open/close menu
F1...F9 Switch between workspaces

Screen (default view)

Key Action
Enter or e Open editor
Esc Close popups
Space Tap tempo
0...3 Switch output display

Editor (Emacs bindings)

Key Action
Ctrl+E Evaluate code
Esc Close editor
Ctrl+U Undo

Standard Emacs navigation applies (Ctrl+A, Ctrl+E, Ctrl+K, etc.).

Menu

Key Action
j / k or arrows Navigate
h / l or arrows Adjust value
Enter Select
Esc Close

Reference Panel

Key Action
j / k or arrows Navigate entries
h / l or arrows Switch category
Enter Insert into editor
Esc Close

Headless Mode

Run with --eval "formula" for headless operation.

Key Action
q / Esc / Ctrl+C Quit
0...3 Switch output display

Contributing

Strix is not perfect, and will probably never be. If you feel like you want to contribute, please open an issue or submit a pull request. Your feedback and contributions are welcome! Contributions are not only code contributions, we warmly welcome:

  • Bug reports and feature requests.
  • Documentation improvements.
  • Tutorials and examples.
  • Testing on various platforms.
  • Community support (helping others).

Read CONTRIBUTING to learn more about the rules we use for code contributions.

Acknowledgments

Strix is inspired by Hydra, created by Olivia Jack. Hydra is a live coding environment for visual synthesis that runs in the browser. Consider supporting the Hydra project. Many thanks to the global live coding community for their amazing work.

License

This software is licensed under an A-GPLv3 license.

Commit count: 0

cargo fmt