/Silico.jl

Unified contact simulaton and collision detection

Primary LanguageJuliaMIT LicenseMIT

CI codecov

Silico.jl: Single-Level Differentiable Contact Simulation

Silico allows you to quickly build rigid-body contact simulation environments. It unifies the problem of contact dynamics and the collision detection problem by formulating a single Nonlinear Complementarity Problem (NCP). Silico jointly solves for the contact impact forces, friction forces and the contact point locations. The NCP is solved efficiently using a primal-dual interior point method implemented in Mehrotra.jl.

It handles collision between ``convex bundles''. A convex bundle is a non-convex shape resulting from the composition of convex shapes through union and Minkowski sum operations.

For more information, please refer to:

Video

video

Examples

Contact-rich manipulation

Peg-in-hole insertion

Block stacking

Polytope drop

Convex bundle

The light green object is the result of the union of two convex shapes, the dark green shapes results for the Minkowski sum of a polytope and a sphere.

Citing

@article{lecleach2022silico,
	title={Single-Level Differentiable Contact Simulation },
	author={Le Cleac'h, Simon and Schwager, Mac and Manchester, Zachary and Sindhwani, Vikas and Florence, Pete and Singh, Sumeet},
	journal={arXiv preprint arXiv:2212.06764},
	year={2022}
}