Repository navigation
feat(web): interactive real and complex 2D charts with numerical sampling - #301
Draft
PawelTroka wants to merge 4 commits into
Draft
PawelTroka wants to merge 4 commits into
PawelTroka wants to merge 4 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Addresses the browser 2D interaction gap in #292: ordinary real and complex charts currently replace one static PNG. This is a separate workstream from draft #294.
Draft — do not merge without the owner's explicit approval.
What changes
interactive2Don the existingPOST /api/v2/chartreturns bounded real-curve or complex-value samples through the existing evaluator, request-local custom definitions and isolated worker. Default API callers and implicit expressions retain PNG rendering.allowEmpty2Dopt-in permits this; new Draw/Add operations still reject an entirely undefined initial domain.Verification
Current source head:
75aef98191149838d13a02c3e808c9f5802271d8.The final combined artifact retains 32 unique PNG stages, including all ten switching stages in each browser. Those twenty switching images were visually inspected: 2D axes/labels/legends are complete, WebGL visibly rotates/zooms, and exports contain the plotted content. Source identifiers and the downloaded artifact digest were verified.
Coverage includes actual wheel/drag/keyboard, native Chromium two-finger pinch, per-layer source snapshots, cached resize/color controls, domain-limited layers, cancellation/stale-result guards, malformed responses, request bounds, and decoded PNGs with nonblank plot pixels. API tests cover independent numerical values, grid orientation, singularities, custom definitions and isolation, sampling/precision limits, legacy PNG compatibility and cancellation.
PR #294 compatibility
Target:
9fc1b7949fab5dab4cd3ce04cfef2bf944511b01, based on masterfe1aba49b5f9538355ffaaa3d1683f69a23d2d9c.Chart.tsxand the solution documentation inventory need explicit reconciliation; conflict-free merging is not claimed.SurfacePlot, quality selection, cached resize, camera controls, WebGL reporting and export. This standalone PR does not add Plotly or duplicateSurfacePlot.281fdbabeb40001adfc362cb02405d321d00c5b9. Bridge SHA-256:881efd2f00e1768cc1b69aea334ab85c6c29a0cfcc8b97d897f77f16e517c542. CI retains these identifiers inwebgl-294.jsonalongside screenshots and results.Remaining differences
Implicit charts retain PNG/manual bounds. Real overlays are bounded at eight; complex charts retain one field, as on desktop. Scripted point series, desktop autoscale variants, per-axis wheel modifiers, arbitrary style/property dialogs and print dialogs remain separate.
Desktop exponential contours are omitted because their current magnitude-dependent loop has problematic/nonterminating edge cases. The browser's lighter color direction follows documented endpoint semantics instead of reproducing the desktop formula discrepancy; exact color-pixel parity is not claimed. Sampling is finite and bounded, so narrow features may require zooming. API hosting remains Windows-dependent. Visual review also records the inherited #294 camera/aspect framing: a tall paraboloid can extend beyond the frame and crop ground-axis labels; 3D framing improvements remain in that workstream.
Architecture, contracts, commands and parity boundaries: WEB-2D-INTERACTIONS.md.
All requested chart, API and browser gates above passed on the current head, and the complete four-job Windows regression matrix passed. At the latest check, 21 of 22 repository workflows were successful; the separate release identity/candidate evidence workflow was still running, with no reported failure.
This PR remains draft. No existing or new PR has been merged.