Skip to main content

Fiducial — Fiducial-marker detection toolkit for computer vision and robotics

Project description

fiducial

CI PyPI License

Fiducial-marker detection, fast. A clean Python API for detecting AprilTag, ArUco, ChArUco, and chessboard targets on top of an extensible C++ core with optional CUDA acceleration.

pip install fiducial

Public API

The package exposes three building blocks plus a detectors namespace for concrete implementations.

Symbol Kind Description
fiducial.Detector typing.Protocol (runtime-checkable) detect(image) -> list[Marker]
fiducial.Marker frozen dataclass family, id, points, detector_meta
fiducial.Observation frozen dataclass pixel, point_3d, point_id
fiducial.detectors.AprilTagDetector class conforms to Detector

Any object that implements detect(image) satisfies the protocol — there is no required base class.

Architecture

Top-level public API:

  • fiducial.Detectortyping.Protocol (runtime-checkable). Method: detect(image: np.ndarray) -> list[Marker].
  • fiducial.Marker — frozen dataclass. Fields: family: str, id: int | None, points: list[Observation], detector_meta: dict.
  • fiducial.Observation — frozen dataclass. Fields: pixel: tuple[float, float], point_3d: tuple[float, float, float], point_id: int | None.

fiducial.detectors namespace exposes one entry:

  • AprilTagDetector — conforms to the Detector protocol.
src/fiducial/
├── __init__.py          Public re-exports + version
├── _core.py             Detector protocol + Marker / Observation
└── detectors/
    ├── __init__.py      Detector implementations namespace
    └── apriltag.py      AprilTagDetector

The native core is a small C++17 / nanobind extension (_fiducial) with optional CUDA support (-DBUILD_CUDA=ON).

Status

fiducial is in early development. The public surface is intentionally small while the detector backends are being built out.

Documentation

Full documentation will be available at vistralis.org/fiducial.

Development

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

To build with CUDA support:

pip install -e ".[dev]" \
    --config-settings=cmake.define.BUILD_CUDA=ON

License

Apache-2.0 — see LICENSE for details.

Copyright (c) 2026 Vistralis Labs.

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

fiducial-0.0.1.dev1.tar.gz (11.6 kB view details)

Uploaded Source

Built Distributions

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

fiducial-0.0.1.dev1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (31.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fiducial-0.0.1.dev1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (30.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fiducial-0.0.1.dev1-cp314-cp314-macosx_14_0_arm64.whl (27.6 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

fiducial-0.0.1.dev1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (31.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fiducial-0.0.1.dev1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (30.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fiducial-0.0.1.dev1-cp313-cp313-macosx_14_0_arm64.whl (27.7 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

fiducial-0.0.1.dev1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (31.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fiducial-0.0.1.dev1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (30.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fiducial-0.0.1.dev1-cp312-cp312-macosx_14_0_arm64.whl (27.7 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

fiducial-0.0.1.dev1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (32.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fiducial-0.0.1.dev1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (31.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fiducial-0.0.1.dev1-cp311-cp311-macosx_14_0_arm64.whl (28.2 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

fiducial-0.0.1.dev1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (32.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fiducial-0.0.1.dev1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (31.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fiducial-0.0.1.dev1-cp310-cp310-macosx_14_0_arm64.whl (28.2 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file fiducial-0.0.1.dev1.tar.gz.

File metadata

  • Download URL: fiducial-0.0.1.dev1.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fiducial-0.0.1.dev1.tar.gz
Algorithm Hash digest
SHA256 eb785dcc84e5cd90c8fc94c9568e166b2ac43db649de6bc3d2f531070a80e22c
MD5 a7605268a77dd9526f972ed709e16246
BLAKE2b-256 e85d89395b78ff4fc583c309c16dee8442f7fd0d38e3947062177dbdb76122e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1.tar.gz:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ff8cf9702f824b43ebf0cb3f84d65ab83d2b9861a839924a020be59d6b4e553
MD5 e23dac1e299581235b4bc1e0a4d3744e
BLAKE2b-256 0032d5f7d2b3081b076ff32dbf61181123f1284ef5cd4be365dbe7c72fde83b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9c22558099c441a48e9917340e6adbd3d12a5960a3fa58911457a017084fcb2e
MD5 b3424bbc2287765f8265735b2e53b3ed
BLAKE2b-256 fc0bd6e4e9a0c72790eba89f0ead7cf564eed27612b0afc762f223e37612e58a

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f1dd5c33f89ec4f583db655e93e61b34df51e8189b7b846829c170628e91ef03
MD5 a612b0900627939cf1703b5247458ee0
BLAKE2b-256 39d00af1ad9064f0cfdaf86769a91d299c48f13b5388067584237cd9a7845125

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7db0c41184af78ff6fa763f8754baf9db5304560907132afc30d8a4a907668a2
MD5 98e71441874c640ad9f3f5724a33727e
BLAKE2b-256 439c2e3df27b085779d8cc7dbea565ab809da268255a9dfe1e5f93bec2a07910

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 977cf7cc50ce64c6e02a2e8c40be7c5ce48880e3f4811907c04560c2eab6deb1
MD5 4a1be342fde74964158f0e3b3eb22b64
BLAKE2b-256 add7a19aadd18e24f2204eb1a35ca82e5da7184732b4a1c58fad30a04613fc44

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2f07da17a6dc4709290858f466256cc2412bca466890b84238fb3e4d338201cf
MD5 e4919f88ade84efd6e492f6b4a3edfb5
BLAKE2b-256 7840c96704c0682f303317274d97680d89c8bf27618d884585ce7d1bce1d6995

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8bdee92d6d00c1d77e0a413dad1f1486d9d18d1fc3f190f8eee880d16f7be68
MD5 3c154c4fcb28c07932825026787a40ac
BLAKE2b-256 162d7abad5a2e4a57f7c070db33beb7c5c60e3ff342b1eca23971cb02763b1e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3216892c673164bb3ffab6b27d56e8e2a35d0e906cc254f692473bfede4ccb07
MD5 173f51aa6b6772bb9edfcb1b525c4d7e
BLAKE2b-256 24b62fa22778cb5f062b2d3f62de713d809babb71cd32ce7cb587e51217ee83e

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 83773fa117dd5f82380c68079b5fda624737e652ddd92b806c50a1244dc1ecf8
MD5 5928f54077a26b60f8acd13755f54fdc
BLAKE2b-256 da0abb95582c65a9e319aeffa9e66258e5c01f71d2f8b1f6074ea047b5d9a111

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6de2b2d1a48a0d3762f8061a6b95b2edd319ea1a6fdcf490bbb2fd33f52f561
MD5 959728ad46ad704a12a432162174747e
BLAKE2b-256 87b8594acf06f542061d8d1da5681dd37bdad84ffba931593cc6fa3faf954cbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 20f217bcd9735232f0bd7b66513ae514791df01515bf03ec4924095921bc0ceb
MD5 b9a7f60e45fac0659ba2a552b7a43c43
BLAKE2b-256 454cd82a0c05c4b20312a698e2385920434aba43bdd5f39b95985788569f3d45

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0b206b3685779e426dbc8dcd804f50b7931b0a10c80fa8292fa173c482895024
MD5 378e0c8ab1fd83d878d280282fbf4b9c
BLAKE2b-256 7c83b2c2a5806c0b64edba0879c7727cc3b119dbf98da96e5666f460168529fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d3081418064b15b200710f8773381d21a41f173cf3744b1545d0e2e9908f56df
MD5 9390210ad077685caac9421c4c39df4e
BLAKE2b-256 6be3221fab28111f29b71695966e41815701e93e4fc8e924c9a850014f493b6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 11cf912e66faf6c15f5413846b12aeb490298515594028060869419f945e0e6c
MD5 605a02f3d740d5294a0dd9c221381774
BLAKE2b-256 396bf93e6a4ed5beefdceeedd514eee466becf6b64c0aed6f1e8b4caecbbc189

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on vistralis/fiducial

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

File details

Details for the file fiducial-0.0.1.dev1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fiducial-0.0.1.dev1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 13c1b2bf66144d2d1b98c4656368c9b5f4f7615126e71adf78b02c2e0aeee824
MD5 ddaf29ce00dab477ec3faab61fc23d66
BLAKE2b-256 3048b525e3a89ea1772a810a8c1430a6eda3408c55e7f5693072e7dd635cf0d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fiducial-0.0.1.dev1-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: release.yml on vistralis/fiducial

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