This release is a pre-release and may not be stable for production use.
Figurestead
Figurestead is an experimental scientific figure system with Python and framework-free browser surfaces. It shares figure-contract and theme semantics across runtimes while keeping scientific output deterministic and inspectable.
Coordinated release target: Python figurestead==0.9.0a2 and browser @figurestead/web@0.9.0-alpha.3. The package counters are independent. Registry commands below require those exact versions to be available; review candidates use the retained files in release preparation.
Start here
Python
python -m pip install "figurestead==0.9.0a2"
from figurestead import line
figure, axes = line([0, 1, 2], [[0, 1, 0]])
figure.savefig("figurestead-first-success.png", dpi=150)
Open the exact Python example.
Browser
npm install @figurestead/web@0.9.0-alpha.3
The package exports createFigurestead; rendering requires a complete normalized figure contract. The repository includes one with every identifier defined. From a checkout:
python3 -m http.server 4173
Open http://127.0.0.1:4173/examples/browser-first-success/. Inspect the exact browser example and its inline contract.
Python and browser surfaces share normalized figure-contract vocabulary and selected theme definitions. Each surface renders through its own implementation; shared semantics do not imply pixel-identical output.
Series identity and optional direct labels
Default line series combine color with persistent open circle (S1), square (S2), and upright triangle (S3) markers and matching line-and-marker legends. Line rhythm remains an independent semantic channel. Python callers can carry series_slots=[1, 2] when rebuilding filtered S2/S3 rows; browser setData retains established keyed identity through supported filtering/reordering and partial style overrides. setConfig replaces the contract.
Lavender Fog Notebook is the reference light theme; Ultraviolet Laboratory is the reference dark theme for the bounded three-series line profile, not universal accessibility, CVD or print qualification. Product defaults are unchanged.
Opt in with Python line(..., direct_labels=True) or browser style: { directLabels: true }. Direct labels reuse the actual body marker identity beside the traces. V1 covers ordinary one-panel, 2–3-series line figures with single-line printable ASCII labels. Unsupported or insufficient layouts fall back atomically to the ordinary legend. This treatment does not support Unicode, multiline or math interpretation; printable ASCII math punctuation is literal. Active browser transitions use ordinary treatment until settled, and exports without trustworthy measurement retain the ordinary legend.
See the ordinary/direct-label example and detailed direct-label contract. The explicit rendered-series contrast audit measures caller-specified rendering facts separately from the static palette audit.
Figurestead at a glance
The montage spans temporal response, periodic series, calibration and nonlinear relationships, distributions, grouped distributions, exact temporal coverage, and sparse observations. These are deterministic synthetic design and renderer-evaluation fixtures—not scientific measurements or findings.
Beyond the montage
The populated categorical response matrix preserves ten habitat columns and six response-band rows. Fill encodes bounded within-habitat share while each cell retains its percentage and exact count. The fixture is deterministic and synthetic; its project-defined bands are not ecological or regulatory thresholds. Inspect the source scene, raw observations, and derived matrices.
Python and browser
Figurestead's two surfaces share a normalized contract vocabulary, selected theme definitions, and evidence-oriented conventions. They do not promise identical pixels or identical renderer coverage.
- Python provides the compact plotting API used by the first-success example and the existing categorical-matrix extension shown above.
- The framework-free browser package provides its accepted core renderer registry plus the temporal extension at
@figurestead/web/extensions/temporal. - The populated categorical matrix is currently Python-rendered; this README does not imply a browser categorical-matrix renderer exists.
Evidence and documentation
- Public overview
- Evidence Atlas
- Python first-success example
- Browser first-success example
- Static palette versus rendered-series contrast
- Reference light/dark themes for the bounded three-series line profile — current-source exemplars, not universal qualification
- Deterministic specimen corpus and local visual lab
- Technical-showcase reviewer packet — repository-local and undeployed
Status and limits
Figurestead is an experimental public alpha, not a mature universal plotting library.
- The three-series and five-series color-led recommendations are project-authored usage guidance. Higher-series evidence relies on redundant marker and dash channels where those channels exist.
- Digital paper evidence records a 6.372 pt minimum label against Figurestead's internal 6 pt project floor; it is not physical-printer certification or an external typographic standard.
- Color-vision-deficiency plates are simulations with documented model limits, not medical or universal-accessibility certification.
- Renderer coverage differs between Python and browser runtimes, and all specimens shown here are deterministic synthetic evaluation fixtures.
Figurestead is MIT licensed. See versioning, third-party notices, and trademarks.
Metadata
Release files for figurestead 0.9.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| figurestead-0.9.0a2.tar.gz | 424.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| figurestead-0.9.0a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 506.2 kB
Release files / figurestead-0.9.0a2.tar.gz
| Download URL | figurestead-0.9.0a2.tar.gz |
|---|---|
| Size | 424.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ab91df78fbd0ce6457317087fe92a5c5fc65da0b4882b22dcade16bf2af499a9
|
|
BLAKE2b-256 checksum How to use checksums |
517411ed278e26bac6ad60a6ff5abd6631c07e13139bad763fa8bef46713447c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / figurestead-0.9.0a2-py3-none-any.whl
| Download URL | figurestead-0.9.0a2-py3-none-any.whl |
|---|---|
| Size | 81.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4050ca02f4c0293929818084b7820623219c1413c8e16980eb0060a6c622d2a6
|
|
BLAKE2b-256 checksum How to use checksums |
a767bf99d26a0588e043e69c4475be3c8fcf396bb3a9d3dfa892853da702ec64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log