Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

fiducial-targets

CI PyPI License

Print-ready calibration target generation. A Python library that produces millimetre-accurate PDF, SVG, and PNG outputs for chessboards, circle grids, AprilTag, ArUco, and arbitrary mixes of the above — with a YAML sidecar describing the geometry detectors need.

pip install fiducial-targets

Imports live under the fiducial.targets namespace (the package ships as a subpackage of fiducial — see Relationship to fiducial below).

What ships in v0.0.1.dev1

  • Target composition — stack pattern groups and ad-hoc placements in the same target frame, in any mix.
  • Patterns:
    • checkerboard — boards of arbitrary size.
    • circles — symmetric / asymmetric grids, interleaved two-radius grids, WhyCon-style ring grids, concentric ring patterns, plain dots and solid discs.
    • apriltag — single markers and boards for nine families (tag16h5, tag25h9, tag36h10, tag36h11, tagCircle21h7, tagCircle49h12, tagCustom48h12, tagStandard41h12, tagStandard52h13). IDs assigned top-down to match calib.io and OpenCV-aruco conventions.
    • aruco — single markers and boards for the predefined OpenCV dictionaries.
    • centering_disk, origin_marker — CCC origin markers, solid-disc origins, four-sector centering disks.
  • Composites — chessboard + AprilTag (chessboard_apriltag) and chessboard + ArUco (chessboard_aruco) with markers inset in the white squares.
  • Standard footer — Target.add_standard_footer(title, parameters) places an axis-orientation reference plus title and parameter captions below the content extent, never overlapping ink.
  • CairoRenderer with three explicit methods: render_pdf, render_svg, render_png. Pure-cairo, mm-accurate via a single Context.scale.
  • YAML sidecar emitted next to every output, with bounding box, per-placement geometry, per-group keypoints, and footer metadata.
  • ISO 216 paper formats (A0–A6) with a landscape switch and a custom-size override.

Quick start

from pathlib import Path
from fiducial.targets import Target, PageSize, CairoRenderer
from fiducial.targets.patterns import checkerboard, circles

target = Target()
target.add(checkerboard.board(columns=7, rows=6, square_size=25.0))
target.add(circles.dot(center=(200.0, 50.0), radius=8.0))
target.add_standard_footer(
    title="Chess 7x6 + auxiliary dot",
    parameters=("square=25mm", "dot r=8mm"),
)

CairoRenderer().render_pdf(target, PageSize.named("A4"), Path("board.pdf"))

All length values are millimetres. Non-mm quantities carry an explicit suffix (_px, _pt).

Relationship to fiducial

fiducial-targets is the generator half of a two-package split. fiducial is the application- facing detection library — that's where production code lives and where the target-description data contract is owned. This package generates the printable targets fiducial consumes, with a YAML sidecar that documents the ground-truth layout.

Both packages converge at v0.1.0, at which point fiducial-targets will source its payload dataclasses from fiducial (no API change on either side; users continue to write from fiducial.targets import ...).

Status

Early development. The public surface is intentionally small while both packages stabilise toward the joint v0.1.0 cut. Expect minor imports to shift, but the surfaces named above are the ones intended to ship.

IP / attribution

All shipping code is original to this project. The .npz data tables under src/fiducial/targets/_codes/ are upstream code dictionaries:

Attribution is preserved in NOTICE.md files alongside each table.

Development

pip install -e ".[dev]"
ruff check .
ruff format --check .
pytest

License

Apache-2.0 — see LICENSE.

Copyright (c) 2026 Vistralis Labs.

Metadata

Release files for fiducial-targets 0.0.1.dev1

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

Source distribution (sdist)

Source distribution for fiducial-targets 0.0.1.dev1
File Size Uploaded Provenance Actions
fiducial_targets-0.0.1.dev1.tar.gz 1.2 MB With provenance Details for fiducial_targets-0.0.1.dev1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fiducial-targets 0.0.1.dev1
File Interpreter ABI Platform Actions
fiducial_targets-0.0.1.dev1-py3-none-any.whl Python 3 none any Details for fiducial_targets-0.0.1.dev1-py3-none-any.whl

Total release size: 2.5 MB

Release files / fiducial_targets-0.0.1.dev1.tar.gz

Download URL fiducial_targets-0.0.1.dev1.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
2ac2df0b9094eda5e784729e694424dcab1ab269ec506c14119b52ef4c392805
BLAKE2b-256 checksum
How to use checksums
8ff5c3415ef02300ef106a58ca4272cb4e6bd2ff470a1ac68dd70ff6f196d4b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 4, 2026.

Transparency log

Release files / fiducial_targets-0.0.1.dev1-py3-none-any.whl

Download URL fiducial_targets-0.0.1.dev1-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
a2d8f0c472c1039b1217c3112638a5d69670bfa69d48cfce133d09f42bde2434
BLAKE2b-256 checksum
How to use checksums
2a6b4cb64bf3f339e78de868b9cb25edb9dc18c85ec7287df6f4bec1ac1106da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 4, 2026.

Transparency log

Security for fiducial-targets 0.0.1.dev1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for fiducial_targets-0.0.1.dev1.tar.gz

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 Jun 4, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release
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