Skip to main content

🌸 Flowillower 柳暗花明

“山重水复疑无路,柳暗花明又一村。”——宋·陆游 《游山西村》

“Through layered peaks and winding flows, no path seems in sight; /

Beyond shadowed willows, blooming flowers—a village comes to light”

(Lu You, 1167 AD in the Song Dynasty, “Travel to a Village West of the Mountains”, as translated by the library author in 2025).

A graceful, distributed, and Git-powered experiment tracking and model explanation tool for AI researchers. See through every forward pass. Flow will over — and flowers will bloom.

✨ What is flowillower?

flowillower(willow + flower = flo -willow- er = flowillower = flow-will-over ) is a lightweight, decentralized alternative to experiment tracking tools like Weights & Biases or TensorBoard — built for researchers who care not just about metrics, but about meaning.

It enables you to:

  • 🌱 Track metrics, models, and forward flows
  • 🧠 Visualize PyTorch model structures and internal tensor paths
  • 🌍 Store all logs in a Git-powered directory (local-first, push-optional)
  • 🚀 Deploy visualizations to Hugging Face or ModelScope Spaces via a template app
  • 🔐 Keep your data — your data (No central server required)

Whether you’re blocked in a thicket of non-converging experiments or wandering in a maze of parameter sweeps — flowillower aims to be the “bright flowers from dark willows” of your research journey.

🚀 Quickstart

Installation

Install latest from the GitHub repository:

$ pip install git+https://github.com/THU-CVML/flowillower.git

or from conda

$ conda install -c THU-CVML flowillower

or from pypi

$ pip install flowillower

Documentation

Documentation can be found hosted on this GitHub repository’s pages. Additionally you can find package manager specific guidelines on conda and pypi respectively.

Basic usage

Fill me in please! Don’t forget code examples:

from flowillower import init, log_metrics, log_model, push
import torch.nn as nn

# Initialize an experiment (creates a local Git repo)
init(project_name="my_cool_exp")

# Log your model architecture
model = nn.Sequential(nn.Linear(10, 32), nn.ReLU(), nn.Linear(32, 1))
log_model(model)

# Log some fake metrics
log_metrics(step=1, metrics={"loss": 0.234, "accuracy": 0.89})
log_metrics(step=2, metrics={"loss": 0.123, "accuracy": 0.91})

# Optional: push to a remote Git repo for team sharing or cloud viewing
push("https://huggingface.co/spaces/yourname/yourapp")

🙌 Contributing

We welcome contributions, ideas, and issues! See CONTRIBUTING.md or open a discussion to share your thoughts.

📜 License: Apache 2.0

Install flowillower in Development mode

# make sure flowillower package is installed in development mode
$ pip install -e .

# make changes under nbs/ directory
# ...

# compile to have changes apply to flowillower
$ nbdev_prepare

📂 Project Structure

🧠 Why the name “flowillower”?

It’s a blend of “willow” + “flower”, inspired by the Chinese idiom “柳暗花明又一村” (Liǔ àn huā míng yòu yī cūn) — light at the end of the tunnel.

Even deeper: flow + will + over → “flow will over” → Break free from rigid workflows, discover breakthroughs, and bloom.

Metadata

Release files for flowillower 0.0.3

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

Source distribution (sdist)

Source distribution for flowillower 0.0.3
File Size Uploaded Provenance Actions
flowillower-0.0.3.tar.gz 19.0 kB Without provenance Details for flowillower-0.0.3.tar.gz

Built distribution (wheel)

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

Total release size: 36.9 kB

Release files / flowillower-0.0.3.tar.gz

Download URL flowillower-0.0.3.tar.gz
Size 19.0 kB
Tags Source
SHA-256 checksum
How to use checksums
87e8224dfdfcf2bca178f5ea48762435639933f547d774c9713d0b1e209077ca
BLAKE2b-256 checksum
How to use checksums
372682a44f8342b919b147148ad91ecc9d697023bd03fa005bdc2b3d5a783f72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.17

Release files / flowillower-0.0.3-py3-none-any.whl

Download URL flowillower-0.0.3-py3-none-any.whl
Size 18.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f2e70141771c998a43bd2ff5f8f77d0043a5e52fdc8d2f79e70035299578e45
BLAKE2b-256 checksum
How to use checksums
8aec32ae685b022986c27f95c86c3e9e373bd6ea325a9b2fdfefde58d864f4b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.17

Security for flowillower 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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