pfx

Got questions or doubts? Ping me on Discord

Edit it, play it, keep it

pfx gui opens a recipe, a scene or a game's project, and plays it while you edit.

What it does

pfx alone opens the window and pfx <file.pitofx> opens that document in it: an outliner, the live viewport with gizmos and picking, the cameras, the lights and sky, a properties inspector, a render panel, a TOML panel with highlighting and checks at line and column, a log and a traced preview, on one undo history.

A scene .pitofx takes every edit in place. A recipe keeps its edits aside, marked after its name, until Ctrl+S writes them into it.

F5 plays the open scene as a game in the viewport (with a game's WebAssembly module when it has one), and F8 stops it and brings back the viewport, its camera and its selection exactly as they were.

  • One undo history

    Ctrl+Z and Ctrl+Shift+Z step over every edit from any panel: a gizmo move, a value in the inspector, a typed TOML change, an add, a cut, a paste, a duplicate, a delete.

  • Tune while it plays

    Edits made during play reach the running game on the next tick and write nothing. F8 drops them; F10 keeps them as one step, and one Ctrl+Z takes it all back.

  • Frame stats on a key

    F3 shows fps, the frame intervals' p50, p99 and max, the GPU time per pass, the render scale, VRR and the frame-rate target over the viewport.

  • Quiet when nothing moves

    The editor draws a frame only when something changes, so it idles at no GPU time.

Measured

First frame, warm, against Godot 4.7.2's 2.18 s
0.52 s
Method: docs/measured.md
First frame, cold, against Godot's 2.74 s
2.96 s
Method: docs/measured.md
Idle CPU, against Godot's 3.2%
0.05%
Method: docs/measured.md
Memory, against Godot's 1,064 MB
180 MB
Method: docs/measured.md
An empty game's first frame, warm, against Godot's 0.40 s
0.53 s
Method: docs/measured.md

How to use it

  1. Open the start screen, a document, or a game's project folder.

    pfx gui
    pfx gui samples/workshop.pitofx
    pfx gui my-game/
  2. With the pointer in the viewport, G, R and S pick the move, rotate and scale gizmo, L switches world and local space, F frames the selection and T opens the traced preview.

  3. F5 plays and pauses, F8 stops, F3 shows the frame stats.

  4. A game made by pfx new opens in the same window, and F5 plays the game.

    my-game edit

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.