Skip to main content

Shared core library for Hopf fibrations, quaternions, gauged flux lattices, conduits, and survival/relaxation probes

Project description

flux_hopf_lib

PyPI PyPI - Python Version License: MIT CI

Shared core library for the Hopf / flux / quaternion / conduit ecosystem (kinaar8340).

Version: 0.2.2 · Role: single source of truth for foundational math.

Specialized experiments, Gradio portals, and full model stacks stay in consumer repos. Consumers depend on this package, not on each other, for shared primitives.

Dependency direction

                    flux_hopf_lib  (core / SoT)
                           │
     ┌─────────┬───────────┼───────────┬──────────┬────────────┐
     ▼         ▼           ▼           ▼          ▼            ▼
  mystery     toe      vqc_proto      hfb     kingdom   vqc_sims_public
   HF ✓                HF ✓         HF ✓     HF ✓      (parent OAM suite)
  • Allowed: from flux_hopf_lib…, optional sibling imports of specialized models only.
  • Forbidden: sys.path into ../toe for survival/κ math; copy-pasted R residual / Hopf maps.

See docs/DEPENDENCIES.md, docs/ECOSYSTEM.md, and docs/VIZ.md (core Plotly/MPL vs WebGPU companion split).

Install

# Editable (local ecosystem development)
cd ~/Projects/flux_hopf_lib
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# Optional torch quaternion helpers
pip install -e ".[torch]"

Consumer repos:

# Production / HF Spaces / paper reproduction
pip install flux-hopf-lib==0.2.2

# Local core development (editable)
pip install -e ../flux_hopf_lib
# requirements.txt / pyproject.toml / HF Space
flux-hopf-lib==0.2.2

Recommended import style

Keep the namespace flat and predictable:

from flux_hopf_lib import PHI, R_RESIDUAL, E_INV2, DEFAULT_KAPPA
from flux_hopf_lib.quaternion import Quaternion, small_rotor, q_mult
from flux_hopf_lib.hopf import (
    hopf_map,
    hopf_map_from_angles,
    sample_fiber_family,
    stereographic_project,
    toroidal_hopfion_director,
    wg_from_base,
)
from flux_hopf_lib.flux import FluxLatticeConfig, FluxFlywheel, gaussian_defect
from flux_hopf_lib.simulation import (
    steps_for_lambda_t,
    evolve_gauged_twist_survival,
    simulate_twist_pde_survival,
    compare_to_analogs,
    zero_mode_survival_continuous,
)

# Optional visualizations (pip install 'flux-hopf-lib[viz]')
# from flux_hopf_lib.hopf.viz import (
#     plot_hopf_fibers_stereographic,
#     plot_hopf_fibers_dashboard,      # HF-safe 2×2 Plotly
#     plot_hopf_s2_fiber_explorer,    # S² base picker
#     create_plotly_fiber_animation,  # Play/Pause frames
# )
# Geometry export for a future WebGPU companion (no viz deps):
# from flux_hopf_lib.hopf import export_fiber_curves
from flux_hopf_lib.conduit import (
    ConduitConfig,
    GoldenAngleMixin,
    GaugePointerMixin,
    apply_golden_angle_increment,
)
from flux_hopf_lib.utils import cartesian_grid, laplacian_fft

Leaf repos may keep thin re-export shims for one release cycle (toe.relaxation_survival, hfb.hopf, orbital_braille.quaternion_codec) so old imports keep working while you migrate.

Package layout

src/flux_hopf_lib/
  constants.py          # φ, e, π, R residual, κ defaults, W_g lock
  quaternion/           # Quaternion, q_mult, rotors, encode_shard (+ torch_ops)
  hopf/                 # maps, fibers, stereographic, hopfions, invariants, viz
  flux/                 # FluxLatticeConfig, gauge steps, defect densities
  simulation/           # λt survival, twist PDE, mean-mode ODE, κ sweeps
  conduit/              # ConduitConfig, GoldenAngleMixin, GaugePointerMixin
  utils/                # cartesian/polar grids, FFT Laplacian
examples/
  quickstart.py
  consumer_mixin_pattern.py
  hopf_viz_demo.py      # requires [viz]

Quick start

python examples/quickstart.py
from flux_hopf_lib.simulation import steps_for_lambda_t, evolve_gauged_twist_survival

n = steps_for_lambda_t(lambda_t_target=2.0, kappa=0.85, dt=0.001)
out = evolve_gauged_twist_survival(n_steps=n, n_identities=32, seed=42)
print(out["identity_survival"])

What belongs where

In flux_hopf_lib (core) In leaf repos
Quaternion / Rodrigues Full RubikConeConduit + training (toe)
Hopf maps, hopfions, linking VQC/OAM encoding, ICA demixing (vqc_*)
Flux lattice / gauge / defects Analog-gravity / warp solvers (hfb)
λt survival, twist PDE, κ sweeps Gradio / Streamlit UIs (kingdom, HF Spaces)
ConduitConfig + mixins HF Space storytelling, papers, Ray demos
Grids / FFT Laplacian

Migration status

Repo Status
mystery flux_hopf_lib.simulation (no toe path hacks for survival)
toe relaxation_survival shim; golden-angle + GaugePointerMixin
vqc_proto ✓ Quaternion codec re-export
vqc_sims_public quaternion_core re-export
hfb ✓ hopf / grid / defect shims
kingdom ✓ constants + hopf + quaternion for portal demos

Details: docs/MIGRATION.md.

Development workflow

  1. Change foundational math only in this repo.
  2. Run pytest and python examples/quickstart.py.
  3. Update CHANGELOG.md; bump version in pyproject.toml + __init__.py.
  4. Tag a release (v0.1.x / v0.2.0); CI publishes via Trusted Publishing.
  5. Consumers: pip install -e ../flux_hopf_lib while iterating; pin ==0.1.0 (PyPI) or @v0.1.0 (git) for HF / papers.

Tests

pip install -e ".[dev]"
pytest

License

MIT — see LICENSE.

Ecosystem links

Repo URL
flux_hopf_lib https://github.com/kinaar8340/flux_hopf_lib
toe https://github.com/kinaar8340/toe
mystery https://github.com/kinaar8340/mystery
hfb https://github.com/kinaar8340/hfb
vqc_proto https://github.com/kinaar8340/vqc_proto
vqc_sims_public https://github.com/kinaar8340/vqc_sims_public
kingdom_come https://github.com/kinaar8340/kingdom_come

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flux_hopf_lib-0.2.5.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flux_hopf_lib-0.2.5-py3-none-any.whl (43.1 kB view details)

Uploaded Python 3

File details

Details for the file flux_hopf_lib-0.2.5.tar.gz.

File metadata

  • Download URL: flux_hopf_lib-0.2.5.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for flux_hopf_lib-0.2.5.tar.gz
Algorithm Hash digest
SHA256 996271623fe0fa5092d4a3fd0da1fa5a058828c10ef7fa8794a1c6eab7f858b2
MD5 a4b31f1bd1e42a93a043c472741a45f4
BLAKE2b-256 c0bba1e998035315de18d6edaefa8c3ce99d694eb7ba5a0fd291e6b5a5dcf4ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for flux_hopf_lib-0.2.5.tar.gz:

Publisher: publish.yml on kinaar8340/flux_hopf_lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flux_hopf_lib-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: flux_hopf_lib-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 43.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for flux_hopf_lib-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 028a3d4bdd063fc5b8683b709c6c365c77078a7f119e1777aacbc6c5012f336d
MD5 24eb4352db032fe117baa35cef958af3
BLAKE2b-256 de88eb89f24499dd1e22ba5ab4e3bf6f48d5951f173fcc888f0b12c60328a06b

See more details on using hashes here.

Provenance

The following attestation bundles were made for flux_hopf_lib-0.2.5-py3-none-any.whl:

Publisher: publish.yml on kinaar8340/flux_hopf_lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page