Skip to content

Liquidity heatmap (Bookmap-style) #36

Closed

Description

@joeblau

Part of the percept.one parity roadmap.

Depends on: depth data model issue.

Spec

Render historical book size over time as a color field behind the candles — persistent resting liquidity appears as bright 'walls'. Requires retaining a rolling window of depth snapshots/deltas, not just current book state.

Work

  • Depth history ring buffer (time-bucketed book snapshots)
  • Heatmap render pass behind the series layer (new primitive hook, z-order below candles)
  • Color ramp config + intensity normalization
  • Perf budget: must hold 60fps on pan/zoom with a full session of depth history — this is the feature that will eventually force the WebGL2 renderer

Completion audit

Completed by merged PR #41, with the full-session performance audit added in PR #42. DepthHistory retains a configurable bounded window of time-bucketed snapshots; the heatmap primitive draws behind series with configurable color ramps and normalization. The browser benchmark retains all 1,440 minute snapshots (24 hours, 50 levels per side, 144,000 depth points): WebGL2 pan/zoom measured ~60 animation FPS, p95 CPU 12.2/12.8 ms, and no frame intervals above 25 ms on an M3 Max. Canvas2D remains a fallback and measured ~24 FPS on this workload. Finer bucket resolution and other hardware require their own measurements. Raw results and reproduction commands are in packages/chart/PERFORMANCE.md and packages/chart/bench/results/2026-09-29-backends.json.

Validation: 1,855 tests pass with 100% line, branch and function coverage; all package entry points import; PR #42 test and documentation checks passed before merge.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    order-flowOrder flow / book / depth features

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions