Sudden head-tracking jitter: a hidden tracking map, and no way to reset it

Setup: Crystal Super (Micro-OLED), RTX 5090, Pimax EVO 1.0.1 with the Pimax OpenXR runtime, SLAM tracking version Pimax_SLAM_1.9.9.8. The game was MSFS 2024, but the problem wasn’t specific to it.

Symptom: It appeared suddenly, after weeks of smooth tracking, with no update, hardware change or settings change I could point to. The image was perfectly stable while I held my head still. As soon as I turned my head it jittered and hitched, as if the head position was being corrected all the time. It happened at 72 and 90 Hz, at half and full frame rate, and with every OpenXR API layer disabled. Frame rate and GPU load looked fine, so it wasn’t a performance problem.

Why this matters: this is a poor user experience. The problem appears out of nowhere, looks exactly like a performance or rendering issue, and nothing in the software points at tracking. The only evidence is buried in log files most users never open. I only found it because I went through the logs with an AI assistant; otherwise it would most likely have meant days of back-and-forth with customer support, reinstalling drivers and swapping settings that were never the cause. The fix turned out to take a minute, and it should not require that.

What the logs showed: The tracking log in C:\ProgramData\Pimax\slam\6DOF_<date>.txt was full of errors during the session:

  • thousands of Stereo Init Triangulation: bad_frate, Frame N has no obs! and Stereo tri: No features.
  • repeated Reset, ReLoc and super jump entries
  • loop-closure “corrections” against the saved room map of 7 to 17 metres and up to 13°, for example:
Adding correction info: map_id: 698, confidence: 3.645362, correctT: -10.424335, 6.817152, 2.852687, ...
Adding correction info: map_id: 496, confidence: 5.725481, correctT: -10.875420, -13.258201, 10.593441, ...

I never moved more than a metre. The tracker was matching the cameras against stale parts of an old map and snapping my position toward them.

The map is C:\ProgramData\Pimax\slam\<headset serial>platMap_orborb_K8L4.bin (plus a .yaml beside it). Pimax loads it at every start (load map to reloc, and save map) and saves it again at the end of every session. Mine had grown to 36.7 MB across three sub-maps since I set the headset up about seven weeks earlier. Nothing seems to prune it, and I couldn’t find any option in Pimax EVO to reset it.

The fix:

  1. Quit Pimax EVO completely (tray icon → Exit).
  2. In C:\ProgramData\Pimax\slam\, rename <serial>platMap_orborb_K8L4.bin and <serial>platMap_orborb_K8L4.yaml to .old. Keep the old files in case you need them back.
  3. Don’t touch device_calibration_<serial>.xml. That is the camera calibration, not the map.
  4. Start Pimax EVO, put the headset on and look around the room slowly for about a minute so it builds a fresh map.

The jitter was gone immediately.

Requests to Pimax:

  • A “Reset tracking map” button in Pimax EVO. Today the only way is renaming a file in ProgramData by hand.
  • Pruning or rebuilding of the map when it grows or stops matching.
  • A sanity limit on relocalisation corrections. A metre-scale jump in a seated setup should be rejected, not applied.
  • Surfacing tracking warnings. The server logged slam warning flags: 1 for most of the session, but nothing in Pimax EVO or the headset showed it.
2 Likes