Files
playground-frontend/ROADMAP.md
T
lobo b1607a4b00 feat(algorithms): add cloth-icm self-collision page
Add a CPU cloth self-collision demo based on Volino and
Magnenat-Thalmann 2006 (intersection contour minimization).
It uses an 18-DOP BVH with normal-cone culling. The page has
tangled and drop scenes and a debug panel.
2026-10-30 13:14:24 +01:00

2.9 KiB

Roadmap

Open ideas for the playground frontend. Tick a box when done.

Quick wins

  • Labyrinth grid size crash: labyrinth.component.html still binds [gridRows]; typed sizes above the max crash the page. Same fix as pathfinding (clamp in code, drop the binding).
  • Fourier circles slider thumb: at "Circles: 256" the thumb sits near the left end, like at 30. Check max/value binding of the circles mat-slider (seen 2026-10-14, not verified).
  • Lighthouse gate: add an assert block to lighthouserc.json (e.g. performance, accessibility, SEO >= 0.9). Today CI runs the audit but never fails. Note: the @lhci/cli → lighthouse 13 override in package.json is only safe without assert. Check it again before you add one.
  • robots.txt + sitemap.xml: static files in public/, listing all routes from app.routes.ts.
  • SEO per algorithm page: all algorithm routes use data: { seo: 'ALGORITHMS' }. Give each one its own key and add SEO.<KEY>.TITLE / DESCRIPTION to en.json and de.json.
  • nginx security headers: no CSP, X-Content-Type-Options, Referrer-Policy, frame-ancestors in nginx.conf (gzip done). First check with curl -I https://andreas-dahm.eu/ if the reverse proxy already sets them.

Tests

  • seo.service.ts: spec for title/meta update on route change and language change.
  • Pure logic without specs: pathfinding-animator.ts, cloth and pendulum GPU strategies (the math around them, not the shaders), fractal3d.

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.
  • 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):
    • Boids / flocking (GPU path like cloth)
    • Physarum (slime mold transport networks, trail map on GPU compute, CPU fallback)
    • Boids 3D (later, 2D done)
    • Voronoi / Delaunay (Bowyer-Watson, CPU + Canvas 2D)
    • A* vs Dijkstra side by side (reuse pathfinding)
    • Fourier epicycles
    • Reaction-diffusion (Gray-Scott) shader (reuse the fractal shader setup)
    • Lenia (continuous Game of Life, shader ping-pong like Gray-Scott)
    • Fluid (Stable Fluids) (velocity, pressure and dye shader ping-pong like Lenia)
    • Cloth self-collision (ICM) (Volino and Magnenat-Thalmann 2006, CPU: BVH with normal-cone culling, contour tracing, intersection contour minimization)
    • Ant colony (ACO on TSP, CPU + Canvas 2D)