No description
  • Go 79.9%
  • Nix 7.7%
  • TypeScript 4.8%
  • GLSL 2.9%
  • Makefile 1.7%
  • Other 3%
Find a file
2026-10-13 17:32:46 +00:00
.circleci circleci: fix ident 2026-03-20 19:53:47 +01:00
.github/workflows remove golangci-lint actions runner (it is handled by nix now) 2026-05-30 23:44:17 +03:00
cmd track fps more accurately 2026-09-22 14:50:58 +03:00
contrib contrib: script to show the metrics and their movement 2026-03-22 15:34:39 +01:00
debian Update wording 2025-11-21 13:48:41 +02:00
examples instrument ffmpeg sink timings 2026-09-22 17:14:23 +03:00
external go4lv: set O_CLOEXEC on v4l2 devices 2026-09-04 14:24:45 +03:00
lib instrument ffmpeg sink timings 2026-09-22 17:14:23 +03:00
man Do both x11 and wayland builds for all GUI tools 2025-11-20 15:38:40 +02:00
nix nix final touches 2026-07-31 15:46:43 +02:00
web_ui Merge branch 'master' into api_url 2026-05-31 19:20:39 +03:00
.gitignore Add basic debian packaging 2025-11-20 09:58:42 +02:00
.golangci.yaml move libs to external/ and fix lint 2025-07-16 11:02:40 +03:00
flake.lock nix final touches 2026-07-31 15:46:43 +02:00
flake.nix fix nix flake 2026-09-22 00:38:26 +03:00
generate_release.sh generate_release: also accept parameter 2026-09-06 10:51:34 +02:00
go.mod wip: merge stats and metrics 2026-09-17 14:49:58 +03:00
go.sum Use plutobook to render html sources 2025-09-18 01:58:34 +02:00
LICENSE Add GNU General Public License version 2 2026-05-21 13:39:08 +02:00
Makefile Add docs and install target to the makefile 2026-01-07 00:22:06 +00:00
README.md Updated README.md to add guide for dependecy installation and build on Fedora 2026-10-14 00:53:28 +08:00

Fazantix vision mixer

Fazant Fazant Fazant

Building

Debian

$ apt install golang libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libglx-dev libgl-dev libxxf86vm-dev
$ make

NixOS

$ nix develop -c make fazantix-wayland

or

$ nix build

Fedora or RPM-based distros

$ sudo dnf install golang libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel libXi-devel libglvnd-devel libXxf86vm-devel
$ make

Running

Running on bare metal

$ xinit ./fazantix configfile.yaml

Running for development

$ make run

or

$ make run CONFIG=fosdem.yaml

To quit, press Ctrl+Shift+Q.

Control

Open the web UI with a browser! It is at http://localhost:8000 by default.

You can also send commands to the API directly:

Switch to the side-by-side scene on the projector stage
$ curl http://localhost:8000/api/scene/projector/side-by-side

Limited keyboard shortcuts are also available:

  • Use the digit keys to switch between scenes
  • Use Ctrl-Shift-q to exit

Development

Core development

Fazantix is written in Go with most of the code residing in lib/

Web API

The Web API uses Swagger, and is built automatically by the makefile. The relevant source is in lib/api. The automatically-generated API documentation can be accessed by loading the /swagger URL in a browser.

Web UI

The Web UI is built using vite and resides in web_ui/. A build.sh script is provided for building the UI into a single index.html file that is then included in fazantix's builtin web server by default.

This, however, is not suitable for development because the bundled index.html is, well, bundled, and also minified, and thus difficult to debug. In order to start a development webserver to aid with Web UI development, use ./web_ui/build.sh serve and then point your browser at http://localhost:5173. The development web server will proxy the api connections to a locally-running fazantix at port 8000, but you can also override the FAZANTIX_URL environment variable to make the locally-hosted web UI connect to a remote fazantix instance.

The development web server will refresh the webpage or show errors whenever the code is modified.