Skip to main content

Fiatlight

Turn Python functions into interactive apps in one line.

Visual pipelines, persistent state, zero UI code.

Fiatlight auto-generates rich user interfaces from your Python functions and structured data (dataclasses, pydantic models). Chain functions as visual node pipelines, tweak parameters in real time, and let Fiatlight handle state persistence — all without writing any UI code. Think of it as ComfyUI, generalized to any Python function.

From Idea to App in Minutes

The application below combines two functions — generate_image (AI image generation) and add_meme_text (text overlay) — into a visual pipeline, with just 4 lines of code:

import fiatlight as fl
from fiatlight.fiat_kits.fiat_ai import invoke_sdxl_turbo
from fiatlight.fiat_kits.fiat_image.add_meme_text import add_meme_text
fl.run([invoke_sdxl_turbo, add_meme_text], app_name="Old school meme generator")
AI meme generator: two connected function nodes generating and captioning an image

Key Features

  • Automatic GUI generation — pass any typed Python function to fl.run() and get an interactive UI with appropriate widgets for each parameter
  • Visual function pipelines — chain multiple functions as connected nodes with automatic data flow between them
  • Real-time feedback — built on Dear ImGui Bundle, applications run at 120 FPS with immediate-mode rendering
  • State persistence — all inputs, preferences, and window layouts are automatically saved and restored; users can save/load different application states
  • Visual debugging — inspect intermediate internal variables of your functions, and replay exceptions with the exact same inputs
  • Domain-specific kits — pre-built widgets for images (OpenCV), Matplotlib, ImPlot, Pandas DataFrames, and AI (Stable Diffusion)
  • Web deployment — applications can run locally or be deployed as static web pages via Pyodide, with no server-side component

Visualize and Debug Function Internals

Fiatlight lets you inspect the intermediate states of complex functions. Below, the add_toon_edges function's internal variables (edge detection, dilation) are displayed visually — even though they are not returned by the function:

Image processing pipeline showing intermediate edge detection and dilation steps

Quick Install

git clone https://github.com/pthom/fiatlight.git
cd fiatlight
pip install -r requirements.txt
pip install -v -e .

Optional dependencies are available for AI (requirements-ai.txt), audio (requirements-audio.txt), and development (requirements-dev.txt).

Who Is It For?

Fiatlight is suited for hobbyists, educators, researchers, data scientists, and developers who want to rapidly create interactive applications, tune algorithms with visual feedback, or build shareable demos — without writing boilerplate UI code.

Links

Metadata

Release files for fiatlight 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fiatlight 0.8.0
File Size Uploaded
fiatlight-0.8.0.tar.gz 3.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for fiatlight 0.8.0
File Interpreter ABI Platform
fiatlight-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 6.5 MB

Release files / fiatlight-0.8.0.tar.gz

Download URL fiatlight-0.8.0.tar.gz
Size 3.4 MB
Tags Source
SHA-256 checksum
How to use checksums
02dee301b660a674beacfd5f289162fc408fea6b3db3289edff615e7212d97c5
BLAKE2b-256 checksum
How to use checksums
544b8aa93b69d2d12d428ca4c576bd64398bdb777258403696a26b39e4b75c9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / fiatlight-0.8.0-py3-none-any.whl

Download URL fiatlight-0.8.0-py3-none-any.whl
Size 3.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
982d85786bbc7d6740bcf871469e4f8d340460908d500d19ae3c5b25c5dc19b9
BLAKE2b-256 checksum
How to use checksums
9f979fc129231dd60cc13077f40e42db33551b38693902b6e450cbe4ed1b8bfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.5.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page