You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Short tracking issue — most sanity_check_attributes / sanity_check_attributes_buffer static methods across the visuals/geometry/material/texture classes are either pass or limited to isinstance(x, Buffer) checks. As a result, malformed input (wrong dtype, wrong shape, mismatched counts) crashes deep in numpy at render time instead of failing clearly at construction or at the buffer boundary.
Audit (as of mesh_ng):
gsp/visuals/mesh.py — sanity_check_attributes is pass; _buffer form only delegates.
gsp/visuals/markers.py — both pass.
gsp/visuals/paths.py — both pass.
gsp/geometry/mesh_geometry.py — both pass.
gsp/visuals/pixels.py, points.py, segments.py, texts.py — _buffer only has shallow isinstance(_, Buffer) checks; no shape/dtype/count validation.
gsp/visuals/image.py, gsp/core/texture.py — partial type checks only.
Short tracking issue — most
sanity_check_attributes/sanity_check_attributes_bufferstatic methods across the visuals/geometry/material/texture classes are eitherpassor limited toisinstance(x, Buffer)checks. As a result, malformed input (wrong dtype, wrong shape, mismatched counts) crashes deep in numpy at render time instead of failing clearly at construction or at the buffer boundary.Audit (as of
mesh_ng):gsp/visuals/mesh.py—sanity_check_attributesispass;_bufferform only delegates.gsp/visuals/markers.py— bothpass.gsp/visuals/paths.py— bothpass.gsp/geometry/mesh_geometry.py— bothpass.gsp/visuals/pixels.py,points.py,segments.py,texts.py—_bufferonly has shallowisinstance(_, Buffer)checks; no shape/dtype/count validation.gsp/visuals/image.py,gsp/core/texture.py— partial type checks only.gsp/materials/mesh_basic_material.py—_buffernow enforces rgba8 on face/edge colors (Matplotlib mesh: 6 confirmed bugs + 2 to verify (vs. matplotlib_scenegraph) #20 Bug 5); the non-buffer form is stillpass.What good would look like (per class):
BufferTypematches the expected encoding (e.g. positions →vec3, indices →uint32, colors →rgba8).max(indices) < vertex_count) at the buffer boundary.Related: this is the larger Bug 6 from #20, broadened beyond Mesh.
This is just a placeholder to come back to — no fix scoped yet.