Repository navigation
feat(web): interactive f(x,y) 3D surface charts with numerical sampling and WebGL - #294
Draft
PawelTroka wants to merge 6 commits into
Draft
PawelTroka wants to merge 6 commits into
PawelTroka wants to merge 6 commits into
Conversation
… validation and PNG export
This was referenced Oct 26, 2026
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.
Scope / issue
Addresses the web explicit f(x,y) surface workstream in #292. Draft; do not merge without owner approval.
Implementation
POST /api/v2/chartPNG behavior for real and complex charts. For explicitFxyfunctions, evaluate a bounded 9–129 squared grid in the existing trusted-local worker using the same mode determiner, Roslyn expression evaluator, and unsaved two-argument custom definitions.kind: surfaceJSON with finite/undefined samples, x/y coordinate arrays and exact counts. Represent singular/NaN/Infinity locations as null holes; reject empty surfaces, invalid requests, unsupported implicit 3D and excessive sampling.Tests
Completed exact-head validation (verified 2026-10-27): all 21/21 GitHub Actions workflows succeeded on
9fc1b7949fab5dab4cd3ce04cfef2bf944511b01, including real Windows API/browser E2E: 12/12 real Chromium/Firefox Playwright scenarios, interactive 3D camera movement, real sampled paraboloid and composed PNG export. The focused frontend, Linux browser, solution, Mono, installer and release workflows also completed successfully. Linux headless Firefox's unavailable WebGL is correctly reported as unsupported; unsupported hardware context is not counted as a successful interactive render.Remaining limitations (not covered here)
GET /api/chart/2ybitmap rendering is deliberately not represented as fixed by the new JSON surface contract.Review / acceptance
Please review API format compatibility, security/resource limits, cross-browser WebGL behavior, image export and Windows worker isolation evidence. Leave this PR in Draft until the owner explicitly authorizes merge.
Cross-platform integration audit — 2026-10-27
9fc1b794), Mono feat(mono): native interactive f(x,y) 3D surfaces in Linux WinForms #296 21/21 green (4769084a). The source changes touch disjoint file paths; this alone is not evidence of integrated behavior.Function.Evaluate(x,y), interpolate row-major coordinates with the same weighted formula, retain non-finite holes and support unsaved two-argument custom functions. Interactive resizing uses cached samples; rendering technologies need not produce pixel-identical output.