I am trying to run the hand.py ball demo. When I run it with the default settings (CCPADMM), I get the following video of not-quite-expected behavior.
Here is some debug output at t=62, for example.
When I switch to CCPNewtonPrimal, I observe new, additional issues after timestep 37.
collision at 0
collision at 1
collision at 2
collision at 3
collision at 4
collision at 6
collision at 7
collision at 8
collision at 9
collision at 11
collision at 12
collision at 13
collision at 14
collision at 16
collision at 17
collision at 18
collision at 19
/home/humanoid/miniconda3/envs/contactbench/lib/python3.10/site-packages/pycontact/utils/pin_utils.py:174: RuntimeWarning: divide by zero encountered in divide
ey /= np.linalg.norm(ey)
/home/humanoid/miniconda3/envs/contactbench/lib/python3.10/site-packages/pycontact/utils/pin_utils.py:174: RuntimeWarning: invalid value encountered in divide
ey /= np.linalg.norm(ey)
in computecontacts
nc=17
J=array([[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan]])
R=array([[ nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323,
nan, -inf, 2.96439388e-323],
[ inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323,
inf, nan, 2.96439388e-323],
[ nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310,
nan, inf, 4.78346184e-310]])
e=array([ 0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308,
0.00000000e+000, 0.00000000e+000, -1.79769313e+308])
/home/humanoid/miniconda3/envs/contactbench/lib/python3.10/site-packages/pycontact/simulators.py:113: RuntimeWarning: overflow encountered in multiply
constraint_cor = (1./dt) * err
t= 38
This then persists for the rest of the simulation.
I think this is a build and/or versioning issue. When building I had several warnings about hppfcl/coal. Or something silly of that nature.
I am happy to provide additional info and videos. If there is a suggested build and installation recipe, I would appreciate it and any other guidance.
Description
I am trying to run the hand.py ball demo. When I run it with the default settings (CCPADMM), I get the following video of not-quite-expected behavior.
2026-01-20.17-33-18.mp4
The command I run is:
Here is some debug output from print statements to
pin_utils.py:ComputeContactsat t=37, for example.collision at 0 in computecontacts nc=1 J=array([[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]]) R=array([[ 0.98446006, -0. , 0.17560865], [ 0.05034753, 0.95801951, -0.28224768], [-0.16823652, 0.28670302, 0.94313194]]) e=array([0. , 0. , 0.00057289]) t= 37Here is some debug output at t=62, for example.
When I switch to CCPNewtonPrimal, I observe new, additional issues after timestep 37.
At t=37, the outputs are the same as before:
collision at 0 in computecontacts nc=1 J=array([[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]]) R=array([[ 0.98446006, -0. , 0.17560865], [ 0.05034753, 0.95801951, -0.28224768], [-0.16823652, 0.28670302, 0.94313194]]) e=array([0. , 0. , 0.00092447]) t= 37Then, at t=38:
This then persists for the rest of the simulation.
Expected Outcome
I think this is a build and/or versioning issue. When building I had several warnings about hppfcl/coal. Or something silly of that nature.
Steps I've Tried
Environment Information
Additional Information
I am happy to provide additional info and videos. If there is a suggested build and installation recipe, I would appreciate it and any other guidance.