pypolaris
Cross-platform SWIG/C++ wrapper for NDI Polaris trackers.
CAPIcommon/: NDI communication library.CAPIsample/src/main.cpp: Python-facing implementation.pypolaris.iandpypolaris.h: SWIG interface and public wrapper API.sroms/: tool definition files used by examples and local testing.CMakeLists.txt: the only native build definition.
Build from the repository root:
uv run --python 3.12 python build-system/build_wheel.py pypolaris
This creates one wheel for the selected Python and the current operating system. Cross-platform wheels are built by the repository's GitHub Actions matrix, not by cross-compiling this command locally.
Multiple-object support introduced in version 0.0.9 remains available. Pass
the tool definitions in a StringVector to Initialize; the corresponding
measurements and visibility flags are exposed through objs and objIDs:
objects = pypolaris.StringVector()
objects.push_back(b"coil-1.rom")
objects.push_back(b"coil-2.rom")
tracker.Initialize(b"COM1", b"NBSprobe", b"NBSref", objects)
tracker.Run()
print(tracker.objs, tracker.objIDs)
The single-object Initialize overload and the obj/objID attributes from
version 0.0.7 remain available for compatibility.
Initialize() returns 0 only after tracking starts. Device warnings, such as
WARNING03 (incompatible loaded tools), are reported to stderr and initialization
continues. These warnings still indicate a tool configuration issue; they do not
guarantee that the tools can be tracked reliably. Actual errors stop initialization,
disconnect the tracker and return the original negative NDI error code. Transport
failures, unreadable ROM files or no enabled tools return -1.
Connection progress and raw commands (including ROM uploads) are quiet by default. Enable them explicitly before initialization when troubleshooting:
tracker.SetVerbose(True)
Warnings and errors remain visible regardless of this setting. Tracking commands
(BX, BX2, TX) are never traced to avoid per-frame console overhead.
The native calls release Python's GIL while waiting for the tracker. Access to
each Polaris connection is serialized, so concurrent Python work can continue
without interleaving device commands. Separate pypolaris instances no longer
share a connection or tracking state.
For the lowest per-frame overhead, use ReadFrame() instead of Run(). It
returns numeric values directly and avoids creating the legacy CSV strings:
frame = tracker.ReadFrame()
if frame.status == 0:
for transform in frame.transforms:
if transform.visible:
print(transform.toolHandle, transform.tx, transform.ty, transform.tz)
frame.status is 0 on success, -1 after a transport/parse failure and -2
when tracking has not been started. Run() remains backward compatible,
updates probe, ref, objs and their ID flags, and returns 1, -1 or -2
for those same states.
Do not commit generated pypolaris.py, _pypolaris.*, CMake build trees or
wheels. The shared builder stages those files automatically.
Metadata
Release files for pypolaris 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 5.5 MB
Release files / pypolaris-0.1.0-cp312-cp312-win_amd64.whl
| Download URL | pypolaris-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 284.4 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6b8dd3c66aa716ab17b2850226cdb4b2fb3fdae825bc027c24b604aa54647c30
|
|
BLAKE2b-256 checksum How to use checksums |
bd5628aaea9a719f50f15f724b3dc0498a87cf629a00683cb85f8bc438dbf7d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | pypolaris-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 341.1 kB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
70956a4c6c0860d8695c1add48c6e482bee0cc5329cd57ae552a4f69b09d8461
|
|
BLAKE2b-256 checksum How to use checksums |
389f6b7874e8d425685da0b6d89a2eb4229eb8d4051b9a7caf2d2efe98e54595
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp312-cp312-macosx_14_0_x86_64.whl
| Download URL | pypolaris-0.1.0-cp312-cp312-macosx_14_0_x86_64.whl |
|---|---|
| Size | 306.7 kB |
| Tags | CPython 3.12 macOS 14.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
7b8d7855026ba10b0a3a1600a5976ae3a81ff7c2bd0c7880ebc240980a7b7c34
|
|
BLAKE2b-256 checksum How to use checksums |
1c047294e1bc1fc2872f7940c4f143d7d45b081043623cad80d51e13cbad46e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp312-cp312-macosx_14_0_arm64.whl
| Download URL | pypolaris-0.1.0-cp312-cp312-macosx_14_0_arm64.whl |
|---|---|
| Size | 279.5 kB |
| Tags | CPython 3.12 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
96290d99e4247069da66acce48ebab920ac279ca40521cb79de69a4edc6997f1
|
|
BLAKE2b-256 checksum How to use checksums |
43ee271c52d4f81d2baf80be113653e81ab153d99d327687b6f6a73c6405845a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp311-cp311-win_amd64.whl
| Download URL | pypolaris-0.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 283.6 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
01305a971ef4d8cbce64b878f288e82e0d1159a06e3e063b671e8314beaf4971
|
|
BLAKE2b-256 checksum How to use checksums |
b1c389d58d264d7601abfd02d92d031b16d5e5369453b4d7b4b983ed2f7fd36c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl
| Download URL | pypolaris-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 341.8 kB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
2cf8b10d0af83b20618f24283b881c2da91c7c1e95289f38996f1e6f920bb6c6
|
|
BLAKE2b-256 checksum How to use checksums |
9567acaef06419e2629815cee89f5d40bae7b4649a9c1ba755eab4b79f51024e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp311-cp311-macosx_14_0_x86_64.whl
| Download URL | pypolaris-0.1.0-cp311-cp311-macosx_14_0_x86_64.whl |
|---|---|
| Size | 305.6 kB |
| Tags | CPython 3.11 macOS 14.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
469a34cde1823d845e33f207c52fab263603f68143c7129e96e85add6ed91414
|
|
BLAKE2b-256 checksum How to use checksums |
f47dd80c72d071343489502a3b1e11483e6941db5bd7a44793996df065b91f35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp311-cp311-macosx_14_0_arm64.whl
| Download URL | pypolaris-0.1.0-cp311-cp311-macosx_14_0_arm64.whl |
|---|---|
| Size | 279.0 kB |
| Tags | CPython 3.11 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
359c28137e41b15f60cb7ced65daa5dcee0015abf48718ec9a5fbef3bce0e175
|
|
BLAKE2b-256 checksum How to use checksums |
eb80f1dcbaca352e4565b7ad320d3d65fcf65405c5bb52c276e7d9929bda6dbc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp310-cp310-win_amd64.whl
| Download URL | pypolaris-0.1.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 283.4 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5ddf79cf9c89aacdba4c1ab6c7e0480cd06b245f9f587bdd60271cfec556ba93
|
|
BLAKE2b-256 checksum How to use checksums |
c0eeb0c3bedf5d28f362fefc1a78bfd90b3210697299a8a7bf24d3ea02693b9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl
| Download URL | pypolaris-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 341.8 kB |
| Tags | CPython 3.10 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
55d9e9fbd9a0df3885b9923218b291a735c0a8bfbd3874ecc6a7e53fa798e8cd
|
|
BLAKE2b-256 checksum How to use checksums |
8e8bc26e67f8d2bc14e8145d49e1b9955d5da1e216f1c020fab353fcbf9cb021
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp310-cp310-macosx_14_0_x86_64.whl
| Download URL | pypolaris-0.1.0-cp310-cp310-macosx_14_0_x86_64.whl |
|---|---|
| Size | 304.9 kB |
| Tags | CPython 3.10 macOS 14.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
96df30c59e30f6abe02dfbcef3e4216f4854ce300fea2138d511b31cc98f5946
|
|
BLAKE2b-256 checksum How to use checksums |
d6e01e4496db47108a4f9de64d50ac1021a27e848a7aa16a4f272c64bba8c989
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp310-cp310-macosx_14_0_arm64.whl
| Download URL | pypolaris-0.1.0-cp310-cp310-macosx_14_0_arm64.whl |
|---|---|
| Size | 278.3 kB |
| Tags | CPython 3.10 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
91ffd7fd26eb84e65dcfe7296c74cc8ecd860c125092007fa33dc6b75e801650
|
|
BLAKE2b-256 checksum How to use checksums |
3f13a44028302cdcb53cb84bc38d0df71f7c946ad8efb53e1f99e0d2f5a6d0ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp39-cp39-win_amd64.whl
| Download URL | pypolaris-0.1.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 283.4 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e5f0b1dd8f9b0e27a103c18491dc8aaa0259400e1694ed0a29023d594baf0ee7
|
|
BLAKE2b-256 checksum How to use checksums |
6188be6eeba2e9751170120a01f332d3cb0e40d0e2745340726d3e1fae7233ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp39-cp39-manylinux_2_34_x86_64.whl
| Download URL | pypolaris-0.1.0-cp39-cp39-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 342.2 kB |
| Tags | CPython 3.9 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
09ea697aae9a577cdab4a212fc78ff54d95c87194de0830fa6b4088b96782d6b
|
|
BLAKE2b-256 checksum How to use checksums |
ab632a7450adb8d8d47cf3deea6a1547656d5a81282aa4e76358ad9de9ad7a17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp39-cp39-macosx_14_0_x86_64.whl
| Download URL | pypolaris-0.1.0-cp39-cp39-macosx_14_0_x86_64.whl |
|---|---|
| Size | 304.9 kB |
| Tags | CPython 3.9 macOS 14.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
5174206f1911804bc01006cf866f0c6786b177a621881d5397d3643fb4e0fbc7
|
|
BLAKE2b-256 checksum How to use checksums |
dc9618eadaa712ae25c2e5ed0ea22e835762cf2f86b515a6937fcac365fe6f22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp38-cp38-win_amd64.whl
| Download URL | pypolaris-0.1.0-cp38-cp38-win_amd64.whl |
|---|---|
| Size | 283.4 kB |
| Tags | CPython 3.8 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
28ed3d2942fa490c42f5d3915ab74abda94201e8cbff83e0814d0e129c2334db
|
|
BLAKE2b-256 checksum How to use checksums |
efd0b5826828916ca634fc5712c67348764d7da3749ea3305fe369ac8880b828
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp38-cp38-manylinux_2_34_x86_64.whl
| Download URL | pypolaris-0.1.0-cp38-cp38-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 341.9 kB |
| Tags | CPython 3.8 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
46f1c33b3ba1a7b2792a2e575564b5359ca59c5ed452ab646172c2aa69dea82d
|
|
BLAKE2b-256 checksum How to use checksums |
ed37b92703e7b2bd5c7c2f1bdedec425b5a1f1152f5e5d8b825437b6f6107797
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pypolaris-0.1.0-cp38-cp38-macosx_14_0_x86_64.whl
| Download URL | pypolaris-0.1.0-cp38-cp38-macosx_14_0_x86_64.whl |
|---|---|
| Size | 305.6 kB |
| Tags | CPython 3.8 macOS 14.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
0fc9b2ebec11a8dddfd98e0c9faca80d0008ccd850eeff1ae5201c6c765337e5
|
|
BLAKE2b-256 checksum How to use checksums |
9b8a5aedb671fa2b277acbd533db4825b11f1f421abb11993c40e0154d94d27d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for pypolaris 0.1.0
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.