pfx

Got questions or doubts? Ping me on Discord

Use it

Prebuilt for Linux, Windows and macOS, or from source

Every tag's GitHub Release carries the pfx tool for three platforms, with a SHA256SUMS file holding the sha256 of every asset. Check a download before you unpack it:

sha256sum --check --ignore-missing SHA256SUMS

On macOS the command is shasum -a 256 --check --ignore-missing SHA256SUMS; on Windows, Get-FileHash <file> prints the hash to compare. The tool needs a GPU wgpu can open: Vulkan on Linux, Vulkan or DX12 on Windows, Metal on macOS.

Linuxpfx-v3.1.3-linux-x86_64.tar.gz
mkdir pfx && tar -xzf pfx-v3.1.3-linux-x86_64.tar.gz -C pfx
install -Dm755 pfx/pfx ~/.local/bin/pfx
cp -r pfx/share/. ~/.local/share/
update-mime-database ~/.local/share/mime
update-desktop-database ~/.local/share/applications

share/ installs the desktop file, the application/x-pfx type for .pitofx files and pfx's icons. pfx must be on PATH; ~/.local/bin is on it in most desktops.

Windowspfx-v3.1.3-windows-x86_64.zip

In PowerShell, from the folder holding the zip:

Expand-Archive pfx-v3.1.3-windows-x86_64.zip -DestinationPath $env:LOCALAPPDATA\Programs\pfx
$user = [Environment]::GetEnvironmentVariable('Path', 'User')
[Environment]::SetEnvironmentVariable('Path', "$user;$env:LOCALAPPDATA\Programs\pfx", 'User')
powershell -ExecutionPolicy Bypass -File $env:LOCALAPPDATA\Programs\pfx\associate.ps1

associate.ps1 registers the .pitofx type and a Start menu entry for the current user only, with no administrator; associate.ps1 -Remove takes it out again. Typing pfx in a terminal runs pfx.com, the command line; pfx.exe is the window launcher. Both stay in the same folder.

macOSApple Silicon

The command-line tool:

tar -xzf pfx-v3.1.3-macos-arm64.tar.gz
sudo install -m755 pfx /usr/local/bin/pfx
From sourceLinux, Windows, macOS
cargo install --locked --git https://github.com/gmrdad82/pfx --tag v3.1.3 pfx

The pfx tool builds from source on Linux, Windows and macOS (Apple Silicon). It needs Rust 1.97 or newer and a GPU wgpu can open: Vulkan on Linux, Vulkan or DX12 on Windows, Metal on macOS. On Debian or Ubuntu, first:

sudo apt install libasound2-dev libudev-dev libxkbcommon-dev libwayland-dev libx11-dev

pfx alone opens the window, pfx <file.pitofx> opens that document in it, and any command or flag runs on the command line without one.

Your gamethe crates, by tag

Make a game, play it and open it in the editor:

git init my-game
pfx new my-game
cd my-game
cargo run --release
cargo run --release -- edit

A game links the crates it uses by the same tag, on Linux, Windows and macOS:

pfx-game = { git = "https://github.com/gmrdad82/pfx", tag = "v3.1.3" }

pfx and its crates build and pass their unit tests on Linux, Windows and macOS (Apple Silicon), and a game's Windows build runs on Linux and the Steam Deck through Proton.

pfx new scaffolds a game; pfx bench plays it headless and prints its frame times.

Build on pfx

pfx is open source under the AGPL-3.0: free for open-source projects, learning and hobby work. Read it, fork it, and send issues and pull requests on GitHub. Closed products and services built on pfx take a licence: free under $200k of yearly revenue plus funding, Indie and Pro above it.

© Catalin Ilinca, AGPL-3.0-only, with licences for closed products; releases up to 3.1.1 remain MIT. The PITO MD name, the pfx name and its logo are © Catalin Ilinca, all rights reserved.

Every picture and clip on this page is pfx's own, rendered or captured from its neutral scenes and licensed with its code (pfx's NOTICE.md); the pfx gui and game-editor clips were recorded by pfx from its v3.0.1 tag, the terminal clips with prec, the loops encoded with pito-codecs and the charts drawn with pito-compare from the numbers pfx v3.1.2 measures. Type: Exo 2 by NDISCOVER ( SIL Open Font License 1.1 ) and JetBrains Mono by JetBrains ( SIL Open Font License 1.1 ), from pfx's theme.