I have been diving down system and hardware rabbit holes for weeks now trying to resolve an issue which looks increasingly like it has some component within TouchDesigner itself.
I am running a TouchDesigner 2025.32050 / Windows 11 25H2 26200.7840 project with a StereoLabs ZED (SDK 5.2.0) camera. Overnight, and specifically overnight (not apparently related to uptime), the camera stalls. The last valid frame of video is conspicuously nighttime-dark, lit only by a couple always-on displays.
Seeking to determine the time of the stall (suspecting it to be some Windows service interference), I threw in a quick Clock CHOP-Feedback-Switch circuit so when the frame-over-frame difference from the ZED feed drops to 0, the system time is latched.
This circuit, using the builtin Clock CHOP, which functions fine when I throw Constant test feeds into the Switch, was for several days straight reporting a stall time of shortly-after-program-launch despite clearly running all day. (e.g. I would get into work, resolve the previous night’s crash by unplugging & re-plugging the camera, relaunch TD shortly after 9am, watch it run all day until I leave the office at 5pm, and get back the next morning ~8:50am to a crash with a latched time of 9:04am the previous day).
So I rebuilt the same circuit using a custom Python Exec→Table for the time data rather than the Clock CHOP, and saw the same symptom: overnight stall, with a latched stall time of approximately when TD was launched.
Intrigued, and knowing that ZED is very sensitive to time changes, I wrote an independent NodeJS app watching both Date.now() (system time) and performance.now() (monotonic increase irrespective of system time change), and while it caught some subtle drift enough to show it was working, it never latched a change of more than a few ms.
At a loss, I added an absTime.seconds term to the readout/latch circuit, and knowing full well that the .toe was running for hours yesterday (with the circuit-latched last-good-frame time shown onscreen and advancing by several hours), returned this morning to a stall with a latched time of 43.783 seconds after program launch (quite possibly consistent with when I entered Perform mode).
My feedback loop only captures one frame of prior time data. The conclusion, then, seems unavoidable that some event coincident with the ZED feed failure is throwing TouchDesigner & Python’s whole timing stack back to near-launch, but only for a few frames. By morning, the live time is progressing accurately, with only the latch circuit holding the inexplicable timestamp. I have no idea whether this is due to the ZED crashing and disrupting TD’s update flow, or whether the ZED node itself is being tripped up by a sudden and drastic backwards delta in the perceived system time and stalling as a result. And other than perhaps cascade-chaining my time-latch logic back a few more frames, I don’t know where else to look for evidence.


