This release is a pre-release and may not be stable for production use.
xNFT: An Open Near-Field Antenna Measurement Software Suite
| Testing | |
| Package | |
| Meta |
What is xNFT?
xNFT is a cross-platform, high-performance, general purpose antenna measurement and analysis software tool, primarily focusing on near-to-far field transformations (NFTs), permissively distributed under the MIT license.
Check out our Video Demo to see some of xNFT's features in action!
Screenshot of xNFT running on macOS. Measurements show an NSI-MI ANT-SGH-26.5-40 standard gain horn at 26.5 GHz collected using the LEmmA planar near-field scanner.
Table of Contents
- Highlights
- System Requirements
- Installation
- Documentation
- Known Issues
- Contributing
- Citing xNFT
- License
- Acknowledgements
Highlights
Some of the main features currently available in xNFT are:
- Planar near-to-far field transforms (PNFT). xNFT uses the FINUFFT library to compute the PNFT, enabling fast and accurate transforms from uniform and nonuniform* sampled source grids directly into uniformly sampled spherical coordinates.
- Probe Compensation. Ideal open-ended waveguide measurement probe correction options are built into xNFT.
- Gain Calibration. Gain calibration may be performed using the gain transfer method via a calibrated measurement antenna and gain reference table in
.csvor.ngtformat. - Graphical user interface (GUI). xNFT provides a rich GUI (via Qt/PySide6) designed to look like common professional engineering tools with interactive plotting (via PyQtGraph) and analysis tools.
- Data exporting. Exporting options are availble in
.h5and.csvformats for imported fields (data conversion) and processed report results. Images may be exported using the underlying PyQtGraph framework (via right-click menu). - Plugin framework. xNFT has an extensible plugin framework allowing users to create custom data loaders in separate python packages allowing users to separate internal tools from the general xNFT framework. For more information see the xNFT Plugin Example repository.
*Nonuniform source sampling has not yet been validated.
In Progress
- Spherical near-to-far field transform (SNFT)
- Expanded plugin package capabilities. E.g., custom Analysis options and Report options.
System Requirements
xNFT is designed to run on a wide range of operating systems and architectures. A list of system configurations designed to be compatible is included below. Other configurations may work, but are not currently considered supported configurations.
xNFT Design System Compatability Matrix
| Operating System | Versions | Architectures |
|---|---|---|
| macOS | >= 15.0 (Sequoia) | x86-64, arm-64 |
| Linux | —— | x86-64, aarch64 |
| Windows | 10, 11 | x86-64, arm-64* |
*Emulated x86 via Prism
Validated Configurations
(Click to view table)
| Operating System | Versions | Architecture |
|---|---|---|
| macOS | 26 (Tahoe) | arm-64 |
| 27 (Golden Gate) | arm-64 | |
| Linux | Alma 8.10, Alma 9.6, Alma 9.8 | x86-64 |
| Ubuntu 26.04 | aarch64 | |
| Windows | 11 | x86-64 |
| 11 | arm-64 (via Prism) | |
| Windows (WSL2) | 11 (Ubuntu 24.04) | x86-64 |
Installation
To install xNFT and download test data, see Installing xNFT.
Documentation
Documentation can be found in the docs folder.
- Installation: Instructions for installing and packaging xNFT, and downloading test data.
- Getting Started: A quick-start guide including a written tutorial and usage video.
- User Guide: Documentation of user interface and antenna analysis workflow.
Developer Documentation
There is a minimal API documentation generated by Sphinx from the docstrings. This is built by the CI task available at:
Local API Documentation Generation
(Click to view)
To build all docs locally (PDF and HTML), run:
pixi run -e docs build-docs
Just the HTML docs or just the PDF docs may be built by running
pixi run -e docs build-html-docs
or
pixi run -e docs build-pdf-docs
Known Issues
A summary of the high-impact issues are included in the Work Items.
Contributing
Community contributions in the form of bug reports, feature requests, and pull requests are welcome!
If you find a bug or would like to request a feature, please first check if a similar issue already exists in Work Items or the GitHub Issues. If not, please open an issue on the GitHub project.
Please refer to CONTRIBUTING for further guidance.
Citing xNFT
If you use xNFT in your work, please consider citing it. Citation metadata is available in the CFF reference file.
-
When citing the use of the software package, please specify the version used for reproduceability. The preferred format is:
J. M. Merlo and M. Ettorre. xNFT - Antenna measurement software. (v#.#.#). Michigan State University. [Online]. Available: https://www.gitlab.msu.edu/ece-lemma/public/xnft/xnft
BibTex Format (click to view)
🚧 TODO 🚧
@software{xnft, author={Merlo, Jason M. and Ettorre, Mauro}, title={{xNFT} - {A}ntenna measurement software}, month={November}, year={2026}, version={v0.1.0}, keywords={Antenna measurements, near-field measurement, near-field transform, open-source software, probe compensation}, doi={}, publisher={Michigan State University}, url={https://www.gitlab.msu.edu/ece-lemma/public/xnft/xnft}}Please replace "(v#.#.#)" with the version of the software you used, e.g. "(v0.1.0)".
-
When citing the software package implementation, please cite our AMTA conference paper. The preferred format is:
J. M. Merlo and M. Ettorre., "xNFT: An open near-field antenna measurement software suite," 2026 Antenna Measurement Techniques Association Symposium (AMTA), Austin, TX, USA, 2026.
BibTex Format (click to view)
@inproceedings{xnft2026amta, author={Merlo, Jason M. and Ettorre, Mauro}, booktitle={2026 Antenna Measurement Techniques Association Symposium (AMTA)}, title={xNFT: An Open Near-Field Antenna Measurement Software Suite}, year={2026}, pages={1-6}, keywords={Antenna measurements, near-field measurement, near-field transform, open-source software, probe compensation}, doi={}}
License
Copyright ©️ 2026 Michigan State University. All rights reserved.
The original source code for this project is distributed under the MIT license.
This project depends on third-party libraries which are distributed separately and remain subject to their respective licenses. For a complete list of runtime dependencies, see the workspace.dependencies section of the pixi.toml file.
Acknowledgements
This work was sponsored by the Air Force Research Laboratory (AFRL) under grant number FA87502510001. The views expressed are those of the authors and do not reflect the official policy or position of the Department of Defense or the U.S. Government.
Metadata
Release files for xnft 0.1.0rc4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| xnft-0.1.0rc4.tar.gz | 1.6 MB | With provenance | Details for xnft-0.1.0rc4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| xnft-0.1.0rc4-py3-none-any.whl | Python 3 | none | any | Details for xnft-0.1.0rc4-py3-none-any.whl |
Total release size: 3.3 MB
Release files / xnft-0.1.0rc4.tar.gz
| Download URL | xnft-0.1.0rc4.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
295c81b1abb661b474c9d7851dbece133f7a0b7bdb248f57bec1c5f225298013
|
|
BLAKE2b-256 checksum How to use checksums |
aae30c641ea49fc7cc1eaf75097a9c3ef28afbd40ea6e65313fdfe03fed2a145
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 3, 2026.
Transparency logRelease files / xnft-0.1.0rc4-py3-none-any.whl
| Download URL | xnft-0.1.0rc4-py3-none-any.whl |
|---|---|
| Size | 1.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4544c3035f43ca43e657485c3181e7a3d9f68920a324c895f08ba79c87c266b6
|
|
BLAKE2b-256 checksum How to use checksums |
9e3bd09920923e793e6e215645d6df1393a4e528435807fd1894b4c5a2dd56cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 3, 2026.
Transparency logSecurity for xnft 0.1.0rc4
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
Both files in this release have been uploaded with provenance metadata.
Attestation for xnft-0.1.0rc4.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 Nov 3, 2026.
Transparency logA 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.