Files
playground-frontend/ROADMAP.md
T
lobo 7dcb0bf95b
Build, Test & Push Frontend / quality-check (push) Successful in 5m37s
Build, Test & Push Frontend / docker (push) Successful in 2m36s
Fixed problems
2026-11-01 12:21:34 +01:00

4.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.
  • Cloth ICM drop specs near timeout: drop specs in cloth-icm-solver.spec.ts take 2.5-3 s each vs Vitest's 5 s default; give them an explicit timeout before a slow CI runner fails them.
  • Pure logic without specs: pathfinding-animator.ts, cloth and pendulum GPU strategies (the math around them, not the shaders), fractal3d.

Features

  • Cloth ICM next steps (page algorithms/cloth-icm, CPU; detection + contours in collision/, one response file per paper in response/):
    • Fold flutter damping: drop cloth never settled (fold vertices flutter at 0.6-1.0 m/s). Done 2026-11-01: cause was the proximity push on folds lying on the ground (push out, next frame stretch constraints pull back, ~1 m/s chatter), not XPBD. Velocity smoothing (neighbour mean) + proximity velocity clamp, drop scene only, drop gap 0.035 -> 0.02: after landing (frames 600-900) max speed median 0.107, p90 0.207 (was 1.2 / 2.0 at 35x35), mean 0.012, same fall and drape, landing frame 20 as before, 11-12 ms/frame headless on 40x40 (was 10.3 on 35x35). Tangled scene bit-identical.
    • Bridson 2002: CCD + velocity-level repulsion, so fast motion cannot jump through the gap; allows a finer drop grid. Large.
    • Papers extending ICM: Ye et al. 2017 (untangling via discrete collision detection), Buffet et al. 2019 (implicit untangling, layered clothing). New response/ file + scene each. Medium per paper.
    • GPU port: detection on the GPU, contours stay on the CPU (serial walk). Very large.
  • Cloth ICM drop scene (state): hits mostly solved, cloth settles. Drop scene 40x40 (spacing 0.145, 5.7 m cloth, user-set), gap 0.02, initial spin 1.5 rad/s around y, one mid-frame proximity re-detection (every 5), velocity smoothing + proximity velocity clamp. Frames 100-240: ICM on avg 1.0 hits per frame (59 % of frames at 0, max 10), ICM off avg 9.8 (max 43), bounded over 900 frames (max 92 after frame 150). Settled: max vertex speed median 0.107 / p90 0.207 m/s (frames 600-900, ICM on; target was 0.1; ICM off median 0.089), mean 0.012, rare snaps to 0.6-0.7. 11.4 ms/frame headless (60 fps budget 16.7). Spin sweep (values above ~0.75 rad/s are capped at the rim to 3 m/s in the first frame; ICM on / off hits, ratio): none 0.31 / 3.9 (12.7x); 0.1 2.6 / 4.3; 0.4 3.5 / 5.8; 0.7 1.3 / 5.1; 1.5 1.0 / 9.8 (chosen, most hits); 3 0.7 / 7.2 (rest speed worse). Finer grids or a gap >= 0.04 made ICM off blow up before the fix (not re-measured). Next: Bridson 2002 CCD + velocity repulsion.
  • 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)