IP(Incremental-potential)-based simulation written in rust.
- Springs
- Affine body
grad & hess may be wrong (so convergence is not guaranteed): rotation of affine body is strange
- Use
vis
visualizer:./vis <frame_json_path> <pause_between_frames?>
- Example:
./vis simsave_20240826_15_44_55/frame_409 true
- Currently implemented collision types:
- body-boundary
- inter-springbody
- To implement a new type of contact:
- Contact-IP entrance:
damped_newton_with_contact.rs
functionfill_frame
; - Collision detection: refer to
inter_body.rs
.
- Contact-IP entrance:
- There are artifacts when two points collide (compared to point-edge collision).
- Test: edge on affine body: contact IP grad&hess
- Contact: affinebody inter-body, affinebody with springsbody
- inter-body ccd
- inter-body contact pair
- Implement inter-body (contact and ccd) pair collection;
- How to implement singleton in rust?