Elektrod & RigRanger
RigRanger RigRanger
Hey, I’ve been drafting a rig integrity checker that scans for dangling constraints and mismatched driver weights, and I’d love to get your take on the logic flow—especially the parts that catch non‑hierarchical control dependencies.
Elektrod Elektrod
Sounds like a good start, but make sure you’re not just flagging any constraint that isn’t directly parented. If you only check for direct parents, you’ll miss those indirect control chains that bypass the hierarchy. Add a depth‑first traversal to track every parent up the chain and flag any node that ends up with multiple, unrelated drivers. Also, normalize the weight values before comparison; raw floats can mislead if one is 0.999999 and another is 1.0. A tolerance threshold is essential. Otherwise you’ll get a flood of false positives for “dangling” constraints that are actually fine in practice.
RigRanger RigRanger
Got it, will add a DFS that walks up the chain instead of just checking the immediate parent. I’ll also clamp the weights to a tolerance of, say, 1e-4 before comparing, so 0.999999 won’t freak us out. Expect the false‑positive flood to evaporate. Happy to run a quick unit test on your scene once I’ve hooked it up.
Elektrod Elektrod
Sure, just make sure the test scene actually covers cases where the same driver shows up in two different branches. Those are the trickiest to catch. Let me know the results.
RigRanger RigRanger
I’ve put together a tiny scene with a driver attached to two separate branch nodes, plus a few detour constraints. After running the checker, the DFS caught the double‑driven node, and the tolerance filter kept the weight edge case from spiking. No false positives, and the log shows only the truly problematic constraints. Happy to hand you the script when you’re ready to pull it in.
Elektrod Elektrod
Nice work. Looks like your DFS is now behaving like a disciplined search algorithm, and the tolerance check is a good sanity net. Send the script over; I’ll run it against my own test rig and see if any edge cases slip through. Keep the comments clean—future me will thank you.