• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

DIY 3D Speaker Scanner - the Mathematics and Everything Else

That's not my understanding.

Patent is a system that grants exclusive rights to commercial use in exchange for disclosing an invention.
One of its fundamental goals is the advancement of technology for the benefit of humanity, so patents do not prevent individuals from using the disclosed technology.
On the contrary, it actively encourages such use for research and development, thereby fostering the creation of even more advanced innovations.
 
Please support this petition if you think reducing the price of NFS will lead to a better-sounding world.


You cannot be serious. The NFS is incredibly cheap for what it offers. At least one YouTuber bought one.

The price of the NFS is not in the top 50 things making audio devices sound bad.
 
"could Klippel NFS be reverse-engineered?" I asked ChatGPT 4.0 and came up with this. I wondered it could be interesting to you guys:

Absolutely! Here's a detailed technical explanation in English about the Klippel Near Field Scanner (NFS) system, how it works, the governing equations, and how one might attempt to reverse-engineer or build a similar system from scratch.


---

What is the Klippel Near Field Scanner (NFS)?

The Klippel NFS is an advanced measurement system designed to accurately map the 3D acoustic radiation of a loudspeaker using near-field measurements. It allows you to predict the far-field response (what a listener hears) by capturing detailed data in the near field, and then mathematically reconstructing the entire sound field using modal decomposition techniques.


---

Core Acoustic Theory Behind NFS

1. The Helmholtz Equation

The fundamental equation governing sound propagation in a lossless, homogeneous medium is:

\nabla^2 p + k^2 p = 0

Where:

= acoustic pressure

= wave number

= Laplacian operator


This equation is solved subject to boundary conditions defined by the source (i.e., the speaker) and the measurement geometry.


---

2. Spherical Harmonic Expansion / Field Decomposition

To model the acoustic radiation from a loudspeaker in 3D space, the pressure field is expanded as a series of spherical harmonics (or sometimes cylindrical harmonics):

p(r, \theta, \phi) = \sum_{n=0}^{\infty} \sum_{m=-n}^{n} A_{nm} \cdot h_n^{(2)}(kr) \cdot Y_{nm}(\theta, \phi)

Where:

= spherical harmonic functions

= spherical Hankel function of the second kind (outgoing wave)

= complex coefficients (to be estimated from measurements)



---

️ How the Klippel NFS Works (System Overview)

✅ 1. Mechanized Measurement System

The speaker remains stationary.

A microphone moves on a circular, spherical, or cylindrical path around the speaker (e.g., using robotic arms or a CNC gantry).

Thousands of measurement points are taken (often 1000–2000+).


✅ 2. Near-Field Scanning

At each point, the system captures acoustic pressure data.

Using knowledge of the measurement positions, the system reconstructs the 3D radiation pattern.


✅ 3. Modal Decomposition

The collected near-field data is used to compute the modal coefficients .

These coefficients allow you to analytically reconstruct the pressure field at any point in space (including far-field).



---

Reverse Engineering Klippel NFS – Step-by-Step

You can try to build a simplified version of the NFS using the following approach:


---

1. Mechanical System (DIY Robotic Scanner)

Use a CNC frame, robotic arm, or gimbal-style setup to move the microphone around the speaker in 3D.

You need at least 1–2 mm positioning accuracy.

Use stepper motors, rotary encoders, or servo motors for repeatable precision.



---

️ 2. Measurement Hardware

Microphone: Use a calibrated omnidirectional mic (e.g., Earthworks M30, Dayton EMM-6).

Audio Interface: Use a low-noise, high-resolution interface to capture data (24-bit/96kHz recommended).

Record amplitude and phase information at each point (impulse response or swept sine).



---

3. Data Processing & Acoustic Reconstruction

You’ll need to:

Store each pressure reading along with the 3D coordinates .

Fit this spatial dataset into a spherical harmonic model:

Use least-squares fitting or modal decomposition to compute


Once you have the coefficients, you can compute:

On-axis and off-axis response

Directivity Index

Total Radiated Power

Polar plots at various distances and frequencies




---

Software Tools (Open Source and Research-Grade)

Here are some tools that can help you with modeling and simulation:

Tool Language Purpose

Acoular Python Beamforming & source localization
k-Wave MATLAB Wave propagation modeling
OpenDAFF C++ / XML Storing & visualizing directional audio fields
SHTools Python / Fortran Spherical Harmonic Analysis


You can also use NumPy, SciPy, and Matplotlib to create your own spherical harmonic fitting routines.


---

Deeper Math – Least Squares Estimation of Modal Coefficients

If you have pressure measurements at positions , then you can construct a system:

\vec{p} = \mathbf{Y} \cdot \vec{A}

Where:

= matrix of spherical harmonics evaluated at each point

= modal coefficients


You solve for using:

\vec{A} = (\mathbf{Y}^H \mathbf{Y})^{-1} \mathbf{Y}^H \vec{p}

(assuming is invertible – use Tikhonov regularization if needed)


---

Bonus: Simulate Before You Build

Before building anything, try simulating a near-field dataset using synthetic sources (e.g., monopole + dipole), and apply your modal fitting routine. This will give you confidence that your math is solid.


---

✅ Summary

Component Description

Hardware 3D scanner with a moving microphone
Measurement Record pressure amplitude and phase in 3D
Math Helmholtz equation + spherical harmonics
Software Python or MATLAB with harmonic decomposition
Goal Predict far-field behavior from near-field data



---

If you’d like, I can help you:

Write Python code to compute modal coefficients

Simulate pressure fields

Design a mechanical system

Or even help process your recorded measurement files


Would you like to start with a Python script that simulates a simple near-field scanning system and applies spherical harmonic decomposition?
 
I haven't checked all the details, but that looks like a broad summary of this thread. A few of the software tools may not have been mentioned.
 
At a very high level (20 000 m) view, the summary is sort of OK. It is missing a lot of implementation details (such as how to decide when the fit errors are good enough), and we all know the devil is in the details. The crucial part that is missing is sound field separation (how to get the anechoic data from measurements in a normal reflective room).
 
USB mics are not exactly going to work as most are not capable of giving a phase reference that is adequate.

The summation is a language learning model. A compilation of available text typed on line. And there is a lot of text typed online that is worthless. As far as I know in English there are two threads that are making a stab at designing this. And the fruition of all the work shared is a working system by Tom that is still having a few hiccups.
 
  • Like
Reactions: NTK
A petition to ask a private company to lower the cost of an industrial precision instrument so that more people who can afford it, while probably no one knows how much R&D goes into making and maintaining this product, all the while this product is a fraction of the cost for the alternative, anechoic chamber.

Why don't we petition for home prices to be cheaper while we're at it.
 
I downloaded the data from @JanRSmit and had to dust off my Sound Field Separation software. At first I wasn't that successful in getting a good looking image. But when I went to N=12 I got a quite nice image. I'm pretty excited, so I post them here quickly. Ignore the bass frequencies for now. They suffer from the high nr of modes (N).

Here they are, together with a reference taken from https://www.audiosciencereview.com/...ec-8010a-powered-studio-monitor-review.16866/

horizontal.png
vertical.png
 
Subject: HALS: A DIY Near-Field Acoustic Scanner (Mechatronics, Measurement Software & Post-Processing)

Hi everyone,

Following the various discussions on DIYAudio and ASR regarding the Klippel NFS and the mathematics of 3D scanning, a few of us have teamed up to build a functional DIY version. We’re calling the project HALS (Holographic Acoustic Loudspeaker Scanner).

The project is a collaboration:

  • Jan Smit: Designed and built the mechatronics (the physical scanner).
  • Tom Kamphuys: Developed the original proof and principle (mechatronics, measurement software and postprocessing based on NTK's work), currently focussing on the measurement software.
  • Dimitri Fapinov: Handling the post-processing and mathematics.
of course with the help of various forum members!

1. Mechatronics (Jan’s Design)​

The goal for the hardware was to create a repeatable design using standard components. Jan’s setup is based on V-slot profiles and 3D-printed parts (FDM), making it accessible for others to build or adapt.

Specifications:

  • Footprint: Fits within a standard room (Jan’s workspace is 5x3x2.4m).
  • Envelope: A cylinder of 2.7m diameter and 2.2m height.
  • Hardware: Nema17 motors, 24V power, and a grblHAL-based controller with Trinamic drivers.
  • Movement: 3-axis (Z-axis, Radius, and PHI rotation).
  • Performance: Roughly 1,500 points in 3 hours.
The design is modular, allowing it to be disassembled. The focus was on stiffness and accuracy while keeping moving mass low. It is a huge step forward compared to the first prototype.


Current-HALS-Robot-20260319.jpg



2. Measurement & Control (Tom’s Software)​

The software is written in Python and interfaces with the controller to automate the measurement points. It handles between 4,000 and 5,000 points per full scan to ensure enough data for high-frequency reconstruction. It includes safety "keep-out" zones to protect the speaker during the mic's movement. It uses the Farina method to determine the Impulse Response of the speaker at a double shell (or a cloud) around the speaker.

1774040826509.png


With ideas for improvement:

1774040884912.png



3. Post-Processing (Dimitri’s Implementation)​

The post-processing allows for anechoic results in a reflective room. The workflow is as follows:

Step 1: Spherical Harmonic Expansion For each frequency, the measured pressure is fitted using Spherical Harmonics and Hankel functions. This creates a mathematical model of the speaker's radiation.

Step 2: Sound Field Separation By measuring on two different surfaces (e.g., two cylinders), we can solve for both outgoing waves (the speaker) and incoming waves (the room reflections). The reflections are mathematically removed from the final dataset.

Step 3: Virtual Reconstruction Once we have the coefficients for the outgoing wave, we can calculate the sound pressure at any distance. This allows us to generate far-field data, CEA2034 (Spinorama) sets, and directivity contour plots.

Genelec 8010A

VituixCAD Directivity (ver).png

VituixCAD Directivity (hor).png

VituixCAD CTA-2034.png


Two Measurements with sound split in internal and external sources:
image.png


The post-processing has also been improved a lot with e.g. optimization of the center of expansion.

Reference measurements can be found here: https://www.audiosciencereview.com/...ec-8010a-powered-studio-monitor-review.16866/

Current Status​

We are currently in the testing phase, running several measurement sessions per week to verify the accuracy of the fitting and the reliability of the mechatronics. The mechatronics and post-processing have improved significantly wrt the initial prototype.

The code is available on GitHub:

We are happy to answer any technical questions regarding the build or the mathematics involved.
 
Last edited:
With this post You will get lots of requests of ' where are all those parts to be ordered'...
Just saying..
 
Subject: HALS: A DIY Near-Field Acoustic Scanner (Mechatronics, Measurement Software & Post-Processing)

Hi everyone,

Following the various discussions on DIYAudio and ASR regarding the Klippel NFS and the mathematics of 3D scanning, a few of us have teamed up to build a functional DIY version. We’re calling the project HALS (Holographic Acoustic Loudspeaker Scanner).

The project is a collaboration:

  • Jan Smit: Designed and built the mechatronics (the physical scanner).
  • Tom Kamphuys: Developed the original proof and principle (mechatronics, measurement software and postprocessing based on NTK's work), currently focussing on the measurement software.
  • Dimitri Fapinov: Handling the post-processing and mathematics.
of course with the help of various forum members!

1. Mechatronics (Jan’s Design)​

The goal for the hardware was to create a repeatable design using standard components. Jan’s setup is based on V-slot profiles and 3D-printed parts (FDM), making it accessible for others to build or adapt.

Specifications:

  • Footprint: Fits within a standard room (Jan’s workspace is 5x3x2.4m).
  • Envelope: A cylinder of 2.7m diameter and 2.2m height.
  • Hardware: Nema17 motors, 24V power, and a grblHAL-based controller with Trinamic drivers.
  • Movement: 3-axis (Z-axis, Radius, and PHI rotation).
  • Performance: Roughly 1,500 points in 3 hours.
The design is modular, allowing it to be disassembled. The focus was on stiffness and accuracy while keeping moving mass low. It is a huge step forward compared to the first prototype.


View attachment 519143


2. Measurement & Control (Tom’s Software)​

The software is written in Python and interfaces with the controller to automate the measurement points. It handles between 4,000 and 5,000 points per full scan to ensure enough data for high-frequency reconstruction. It includes safety "keep-out" zones to protect the speaker during the mic's movement. It uses the Farina method to determine the Impulse Response of the speaker at a double shell (or a cloud) around the speaker.

View attachment 519154

With ideas for improvement:

View attachment 519155


3. Post-Processing (Dimitri’s Implementation)​

The post-processing allows for anechoic results in a reflective room. The workflow is as follows:

Step 1: Spherical Harmonic Expansion For each frequency, the measured pressure is fitted using Spherical Harmonics and Hankel functions. This creates a mathematical model of the speaker's radiation.

Step 2: Sound Field Separation By measuring on two different surfaces (e.g., two cylinders), we can solve for both outgoing waves (the speaker) and incoming waves (the room reflections). The reflections are mathematically removed from the final dataset.

Step 3: Virtual Reconstruction Once we have the coefficients for the outgoing wave, we can calculate the sound pressure at any distance. This allows us to generate far-field data, CEA2034 (Spinorama) sets, and directivity contour plots.

Genelec 8010A

View attachment 519149
View attachment 519150
View attachment 519151

Two Measurements with sound split in internal and external sources:
View attachment 519160

The post-processing has also been improved a lot with e.g. optimization of the center of expansion.

Reference measurements can be found here: https://www.audiosciencereview.com/...ec-8010a-powered-studio-monitor-review.16866/

Current Status​

We are currently in the testing phase, running several measurement sessions per week to verify the accuracy of the fitting and the reliability of the mechatronics. The mechatronics and post-processing have improved significantly wrt the initial prototype.

The code is available on GitHub:

We are happy to answer any technical questions regarding the build or the mathematics involved.
I've been loosely following that thread.

I hope you folks will put together a thorough document on how to build this from scratch including where to source the parts.

Superb work gents.
 
Last edited:
Subject: HALS: A DIY Near-Field Acoustic Scanner (Mechatronics, Measurement Software & Post-Processing)

Hi everyone,

Following the various discussions on DIYAudio and ASR regarding the Klippel NFS and the mathematics of 3D scanning, a few of us have teamed up to build a functional DIY version. We’re calling the project HALS (Holographic Acoustic Loudspeaker Scanner).

The project is a collaboration:

  • Jan Smit: Designed and built the mechatronics (the physical scanner).
  • Tom Kamphuys: Developed the original proof and principle (mechatronics, measurement software and postprocessing based on NTK's work), currently focussing on the measurement software.
  • Dimitri Fapinov: Handling the post-processing and mathematics.
of course with the help of various forum members!

1. Mechatronics (Jan’s Design)​

The goal for the hardware was to create a repeatable design using standard components. Jan’s setup is based on V-slot profiles and 3D-printed parts (FDM), making it accessible for others to build or adapt.

Specifications:

  • Footprint: Fits within a standard room (Jan’s workspace is 5x3x2.4m).
  • Envelope: A cylinder of 2.7m diameter and 2.2m height.
  • Hardware: Nema17 motors, 24V power, and a grblHAL-based controller with Trinamic drivers.
  • Movement: 3-axis (Z-axis, Radius, and PHI rotation).
  • Performance: Roughly 1,500 points in 3 hours.
The design is modular, allowing it to be disassembled. The focus was on stiffness and accuracy while keeping moving mass low. It is a huge step forward compared to the first prototype.


View attachment 519143


2. Measurement & Control (Tom’s Software)​

The software is written in Python and interfaces with the controller to automate the measurement points. It handles between 4,000 and 5,000 points per full scan to ensure enough data for high-frequency reconstruction. It includes safety "keep-out" zones to protect the speaker during the mic's movement. It uses the Farina method to determine the Impulse Response of the speaker at a double shell (or a cloud) around the speaker.

View attachment 519154

With ideas for improvement:

View attachment 519155


3. Post-Processing (Dimitri’s Implementation)​

The post-processing allows for anechoic results in a reflective room. The workflow is as follows:

Step 1: Spherical Harmonic Expansion For each frequency, the measured pressure is fitted using Spherical Harmonics and Hankel functions. This creates a mathematical model of the speaker's radiation.

Step 2: Sound Field Separation By measuring on two different surfaces (e.g., two cylinders), we can solve for both outgoing waves (the speaker) and incoming waves (the room reflections). The reflections are mathematically removed from the final dataset.

Step 3: Virtual Reconstruction Once we have the coefficients for the outgoing wave, we can calculate the sound pressure at any distance. This allows us to generate far-field data, CEA2034 (Spinorama) sets, and directivity contour plots.

Genelec 8010A

View attachment 519149
View attachment 519150
View attachment 519151

Two Measurements with sound split in internal and external sources:
View attachment 519160

The post-processing has also been improved a lot with e.g. optimization of the center of expansion.

Reference measurements can be found here: https://www.audiosciencereview.com/...ec-8010a-powered-studio-monitor-review.16866/

Current Status​

We are currently in the testing phase, running several measurement sessions per week to verify the accuracy of the fitting and the reliability of the mechatronics. The mechatronics and post-processing have improved significantly wrt the initial prototype.

The code is available on GitHub:

We are happy to answer any technical questions regarding the build or the mathematics involved.
You guys brought a smile to my face :) Thank you! Excellent team work. Well done!
 
I've been loosely following that thread.

I hope you folks will put together a thorough document on how to build this from scratch including where to source the parts.

Superb work gents.
Well it is on the ToDo list as well.
A lot of work but with sufficient interest it will be done. Including the 3D design and the 3D parts to print. And some notes on assembly and very important the squaring.
 
Well it is on the ToDo list as well.
A lot of work but with sufficient interest it will be done. Including the 3D design and the 3D parts to print. And some notes on assembly and very important the squaring.
Perfect timing, I am learning how to use a CAD tool as we speak, and already own a 3D printer (plastic though), but any metal parts can be ordered online with a CAD file.

Question for you, with the current design what is the capacity of speakers can this unit measure, size and weight wise.
 
Perfect timing, I am learning how to use a CAD tool as we speak, and already own a 3D printer (plastic though), but any metal parts can be ordered online with a CAD file.

Question for you, with the current design what is the capacity of speakers can this unit measure, size and weight wise.
We will document more, but here a picture depicting the main dimensions, and also the operator adjustable aspects:
Main-Dimensions-Operator-Adjustments-2026-03-22 104736.jpg

So from above picture, the max measurement radius is ~ 600mm (length of mic included), the available height is 1200 minus the height below stool (~ 180mm) and above DUT (assume 200mm), leaves some 800mm height of DUT. The weight of DUT, the tripod is for a max of 50kg (also at larger heights) , so for the DUT 30-40kg, nicely centered.
 
Back
Top Bottom