Skip to content

Latest commit

 

History

History
53 lines (48 loc) · 6.28 KB

File metadata and controls

53 lines (48 loc) · 6.28 KB

M292 qualified capability matrix

M292 requalifies comparable pixel-exact geometry after the Datoviz binding safety repairs and corrects plot-local raster measurement for canvases whose outer background differs. All fourteen artifacts were regenerated from exact committed wheels at GSP fd20c94 and VisPy2 7d2eb41; the schema-2 manifest records source, script, wheel, and artifact hashes.

Status vocabulary: strict preserves the named GSP semantic contract; adapted preserves bounded semantics with documented raster/layout/depth differences; experimental is opt-in and remains outside the default execution path; unsupported returns a capability error or structured query result. “Probe” means gallery 6 checks installed provider metadata and diagnostics. The recorded experimental live-navigation path has completed owner review, but that acceptance does not make it a default or universal backend claim.

M300 adds focused strict evidence for the public DATA-space scalar-image path: retained View2D placement, lower-origin texture coordinates, nearest sampling, overlay registration, programmatic zoom and reversed-axis updates, canonical scalar mapping, and a linked native colorbar. Post-reboot native acceptance repeated the public render, bounded live lifecycle, 640×480 and 1024×768 sizing, pan, zoom, reversed-x, and clean teardown. Image rendering remains independent of still-unadvertised Datoviz image-texel query/readback.

Journey / visual Protocol contract VisPy2 API Matplotlib Datoviz v0.4 Status Test Artifact Diagnostic / boundary
G1 points visual.points Axes.scatter yes yes strict semantic data; backend raster installed-wheel G1 both G1 PNGs marker raster differs
G1 markers visual.markers Axes.markers yes yes strict attributes; backend raster installed-wheel G1 both G1 PNGs shape antialiasing differs
G1 pixels visual.pixels, pixelvisual.v1 Axes.pixels yes yes when probed strict logical size; backend raster G1 + capability check both G1 PNGs physical raster differs
G1 vectors visual.vector, vectorvisual.straight.v1 Axes.vectors yes yes when probed MPL adapted; DVZ strict lowering G1 + capability check both G1 PNGs cap raster differs
G1 primitive visual.primitive, topology contract Axes.primitives yes yes when probed MPL adapted; DVZ strict lowering G1 + capability check both G1 PNGs raster/depth differs
G1 text visual.text Axes.text yes yes when probed adapted native font/layout installed-wheel G1 both G1 PNGs font and metrics differ
Scalar image/colorbar DATA ImageVisual, color scale, colorbar guide Axes.imshow, Axes.colorbar yes yes when probed strict DATA placement and numeric mapping; backend raster/layout M300 focused unit, offscreen, retained-navigation, paired-runner, post-reboot sizing, and lifecycle checks temporary current-runtime captures; no release artifact Datoviz image-texel query remains unadvertised
G2 mesh perspective View3D + DATA mesh Axes3D.mesh yes yes when probed MPL adapted projection; DVZ strict retained path G2 checks both G2 PNGs depth/raster differs
G2 spheres spherevisual.v1 Axes3D.spheres yes yes when probed MPL flat projected circle; DVZ natively shaded analytic impostor G2 checks both G2 PNGs intentional shading/depth adaptation; no material contract
G2 vectors 3D DATA vector contract Axes3D.vectors yes yes when probed MPL adapted overlay; DVZ strict lowering G2 checks both G2 PNGs depth/caps differ
G2 billboards textvisual.billboard3d.v1 Axes3D.text yes yes when probed adapted overlay on both G2 checks both G2 PNGs no strict glyph parity/occlusion
G3 primitive uniform-color indexed triangle strip + orthographic View3D Axes3D.primitives yes yes when probed MPL adapted; DVZ strict lowering G3 construction + capture checks both G3 PNGs no cross-backend interpolation claim
G3 pixels non-coincident 3D DATA logical-pixel squares Axes3D.pixels yes yes when probed MPL adapted overlay; DVZ strict lowering G3 construction + capture checks both G3 PNGs no positional/depth ties; no raster parity
G4 fit canonical perspective fit Axes3D.fit_camera yes yes strict camera state installed-wheel G4 both 04-00 PNGs safe near/far set after fit
G4 orbit canonical orbit reducer Axes3D.orbit yes yes strict programmatic state installed-wheel G4 both 04-01 PNGs not a live-input claim
G4 pan canonical pan reducer Axes3D.pan yes yes strict programmatic state installed-wheel G4 both 04-02 PNGs not a live-input claim
G4 zoom canonical zoom reducer Axes3D.zoom yes yes strict programmatic state installed-wheel G4 both 04-03 PNGs not a live-input claim
G5 live camera view3d.navigation.orbit_pan_zoom.v1 caller-owned display no opt-in only experimental manual review none close window; Ctrl-C fallback
G6 discovery provider metadata + snapshot discover_backends, open_session yes yes strict selection/probe installed-wheel G6 console only Datoviz surface is binding-dependent
G7 point query panel query, identity payload Figure.query yes bounded point path strict bounded path G7 MPL; adapter/install DVZ console HIT rendered caller-owned session required
G7 sphere query structured unsupported result Figure.query unsupported unsupported unsupported by design G7 MPL; capability boundary DVZ console UNSUPPORTED no sphere/3D picking

Guide/title and file-output support are cross-cutting. Matplotlib provides native semantic axes/title layout and deterministic PNG/SVG/PDF; it hides the default native frame for guide-free View3D. Datoviz provides native/adapted axes and PNG when its capture binding qualifies, but the qualified binding exposes no public PanelTextGuide renderer. Its snapshot therefore reports panel titles as unsupported with panel_text_title_unsupported_no_public_renderer_path; it does not claim an invisible adaptation. M284's 25/25 static and 25/25 live lifecycle evidence remains exact-runtime evidence, not a universal lifecycle claim.