About pmdsim

This is a simulator for continuous-wave Time-of-Flight sensors, specifically PMD sensors.

It implements the illumination and sensor models described in this paper: M. Lambers, S. Hoberg, A. Kolb: Simulation of Time-of-Flight Sensors for Evaluation of Chip Layout Variants. In IEEE Sensors Journal, 15(7), 2015, pages 4019-4026.

This software was developed at the Computer Graphics Group, University of Siegen, in collaboration with pmdtec.

PMDSim is free software, licensed under the terms of the GNU GPL version 3 or later.

Please note that PMDSim is superseded by CamSim.


The source code is hosted on git.marlam.de, see the web frontend.
$ git clone https://git.marlam.de/git/pmdsim.git

A mirror of the main git repository is available at github.com/marlam/pmdsim-mirror.


This software should build and run on any operating system. The build system is based on CMake. You need the following libraries:

If Doxygen is available, the HTML documentation will be generated as well.


Starting the program gives you this screen: GUI screen shot

In the top left view, you see the current scene, consisting of a target (default: a Siemens star) and a background (default: nothing). You can use mouse and space bar to navigate within the scene. You can load different targets and backgrounds from OBJ files, or create predefined geometries, using the Target and Background menus.

In the top middle view, you see the Ground Truth range information. This is what an ideal camera would give you.

In the top right view, you see the four phase images that the simulated PMD sensor produces for the scene. You can change simulation parameters from the Simulator menu.

In the bottom row, you see the simulated results: range image (left), amplitude image (middle), and intensity image (right). Depending on simulation parameters, the range image shows the typical errors (flying pixels, motion artefacts, ...).

The scene is static by default, but you can animate it, either by using the mouse in the top left view to generate motion in the scene, or by loading an animation file from the Animation menu.

You can export the current frame or all frames of the current animation from the File menu. For each frame, you get the following files:

The pmdsim executable supports the following command line options for automated tests and evaluations:


Send mail to Martin Lambers.

You can also use the Github mirror features (issues, comments, pull requests etc) if you prefer.