PoseViz

You can use Git to clone the repository via the web URL. Download snapshot (zip)
 
descriptionA web-based visualization and playback tool for 3D body tracking data.
websitehttps://fietkau.software/poseviz
last changeFri, 15 May 2026 10:00:19 +0000 (12:00 +0200)
shortlog
2026-05-15 Julian FietkauFix latest demo name in menu main
2026-05-15 Julian FietkauAdd Kinect example
2026-05-10 Julian FietkauMove intro popup opener after first file load
2026-05-10 Julian FietkauAdd loading animation for demo downloads
2026-05-10 Julian FietkauDo not nest load events in demo (fix initialization...
2026-05-10 Julian FietkauDo not crash if resize handler is called before player...
2026-05-06 Julian FietkauDo not crash in render function if bone template is...
2026-04-24 Julian FietkauBlank tab title on initial page load
2026-04-24 Julian FietkauChange default camera position to one that kinda matche...
2026-04-24 Julian FietkauAlways remove existing person objects on scene update
2026-04-24 Julian FietkauPrefer the recording's centroid as a camera anchor...
2026-04-24 Julian FietkauAdd second ZED 2 PoseViz example
2026-04-23 Julian FietkauReact more sensibly to weird drop events without files
2026-04-23 Julian FietkauRemove sensor info from demo menu entries
2026-04-23 Julian FietkauSubtitle styling
2026-04-23 Julian FietkauMake demo recordings loadable
...
readme

PoseViz

PoseViz is a browser-based 3D visualization for pose tracking data recordings. Body tracking data, which can be gathered from infrared or stereoscopic depth sensors or estimated from normal 2D video feeds, is visualized as skeletons. It can be augmented with several optional inference visualizations, such as estimated gazes or projected walking trajectories.

This program was initially developed for the DFG-funded research project HoPE, which was concerned with the study of people’s behavior in front of large interactive public screens. After the project’s conclusion, the software was migrated to Julian Fietkau’s custody in a private capacity.

A custom file format for scene-based pose tracking data, also called PoseViz, was developed in tandem with this visualization software. It is loosely based on the Wavefront OBJ 3D model format and is relatively easy to intuit in a text editor. At time of writing, no tool to record/generate PoseViz files has been published, since in the course of the research project, they were deeply embedded in each sensor setup. Scene-based body tracking data differs from typical skeletal animation data (e.g. BioVision Hierarchy) by being oriented around a fixed spatial context which actors may enter or leave over the course of a recording, instead of aiming to record one specific actor’s body movements. Nonetheless, BVH rendering support has been added to PoseViz for demonstration purposes.

Requirements

This software requires a browser with support for dynamic JavaScript model imports to run.

On the server side, it requires a web server capable of serving static files – it cannot be loaded from a local directory (“file:” schema) on account of using JavaScript modules.

PoseViz is written in plain JavaScript and has no build steps.

The repository bundles the necessary parts of three.js to avoid third-party server requests at runtime. This project’s license does not apply to three.js. The most recent version can be found on the three.js website or repository.

Contributors

License

Copyright (C) Julian Fietkau and contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.