DCOL++ Solver Playground

live wasm GVSRobotics/DCOLpp

The real dcolpp::socp::proximityContactJacobian — the C++/Eigen second-order-cone solver and its hand-derived analytic Jacobians — compiled to WebAssembly and running right here. Pick two convex primitives, pose body B in 6 DoF, and hit Solve.

Shapes

🎲 rolls fresh same-kind parameters. Polytope & Polygon also draw a new face count (4–16).

Body B pose

Translation
tx1.80
ty0.00
tz0.00
Rotation — roll / pitch / yaw (deg)
roll
pitch
yaw

Solve

Not solved yet.

Perturbation

After a converged solve, jitter g every frame and watch the re-solved contact race its analytic first-order prediction from the Jacobians.

shape A (solid) shape B (solid)

Solid bodies are the true pose; the gray wireframe is both shapes scaled by alpha until they just touch. When contact_manifold_dim > 0 every point of the returned ContactManifold is drawn — a shared line for a 1D contact, a spread for a 2D one — with the normal at each, since it's the same vector everywhere whenever normal_jacobian_valid.

During Perturb: faint markers hold the unperturbed solve, and the violet diamond & dashed arrow is the analytic prediction x*+J·δξ — it rides the true markers until the contact turns degenerate.

Drag to orbit · scroll or pinch to zoom.