fix(cloth-icm): keep drop cloth free of intersections
Build, Test & Push Frontend / quality-check (push) Successful in 2m43s
Build, Test & Push Frontend / docker (push) Successful in 1m5s

The drop scene used the tangled-start settings, so layers stayed
intersecting. It now has its own grid (35x35, gap 0.035) and
re-checks proximity after 5 of 10 substeps.
After landing, ICM on drops from ~260 to ~1 hit per frame.
This commit is contained in:
lobo committed 2026-10-30 15:41:12 +01:00
1 parent ba82df7694
commit 9c55298ab7
7 files changed
+127 -31

No files matched your search

+1 -1
View File
@@ -19,7 +19,7 @@ Open ideas for the playground frontend. Tick a box when done.
## Features
- [ ] **Cloth ICM drop scene**: with ICM on, ~260 intersections stay (ICM off: ~1000) and the cloth never settles. Causes: discrete detection (cloth moves 5-7x thickness per frame), gravity and ground fold new layers faster than ICM resolves, open contours end at vertex-sharing pairs the narrow phase skips. Ideas: continuous collision detection, detection per substep, handle vertex-sharing pairs.
- [ ] **Cloth ICM drop scene**: hits mostly solved, cloth settling and CCD open. With ICM on, drop scene 35x35 (spacing 0.145, same 4.9 m cloth), gap 0.035, one mid-frame proximity re-detection: ~0 intersections after landing (avg 1.5/frame and 82 % of frames at 0 after frame 150; 0 at the marks 100-450 except 11 at 600), 9-10 ms/frame headless; was 263 at frame 900 on 50x50. ICM off: avg 148 (max 356) after frame 150 (125 at frames 100-240), 68 avg over 1800 frames, bounded but reaches the 3 m/s speed cap at times. Finer grids or a gap >= 0.04 at this size make ICM off blow up (thousands of hits, 60-100 ms frames). Cloth still does not settle (fold flutter beside the sphere, max speed 0.6-1.0 m/s with ICM on, also with collisions off). Next: Bridson 2002 CCD + velocity repulsion, then damping of the fold flutter.
- [ ] **Shareable demo state**: keep demo settings in query params (fractal zoom/center, sorting algorithm, seeds). Opening the link restores the view.
- [ ] **New algorithm demos** (pattern: route + `RouterConstants` + `AlgorithmsService` entry + i18n + information panel):
- [x] Boids / flocking (GPU path like cloth)