Feat/volumic and edges groups#27
Merged
ulysse-bouchet-simvia merged 9 commits intomainfrom Apr 21, 2026
Merged
Conversation
Extract each volume group's skin and each edge-group's 1D cells in med2obj.py and render them as dedicated categories in the viewer sidebar, so volume and edge groups can now be toggled individually alongside face and node groups.
The previous nested-hexagon icon was easily mistaken for a flat badge shape; the isometric cube reads clearly as a 3D solid and distinguishes volume groups from the other kinds in the sidebar at a glance.
Users had no obvious way to tell which icon stood for volume / face / edge / node groups. A small lexicon at the top of the Groups tab now maps each icon to its meaning so the sidebar is self-explanatory.
New Groups tab in the viewer settings popup exposes edge-group thickness and depth offset (avoids z-fighting with the skin), node-group point-size multiplier, sidebar sort order (by name or by cell count), and a toggle to bucket groups by kind. The Edges tab is renamed to Mesh edges and its copy reworded so the wireframe settings are no longer confused with the new edge-group settings. Also fixes long tab content overflowing instead of scrolling, and persists the previously-ephemeral edge threshold multiplier.
Replaces the 2.6 MB bundled script with the tree-shaken package so the library can be upgraded and typed like any other dependency. Every vtk.X.Y.Z global lookup now resolves through explicit ES module imports, and the `declare const vtk: any` stub is gone. Also blocks the EXT_color_buffer_* extension probe so vtk.js 35's Order-Independent Transparency falls back to plain SRC_ALPHA blending — its weighted compositor was washing translucent colors against light backgrounds and crashing on some group hides. Finally, the theme-change observer now re-derives mesh edge colors immediately instead of waiting for the next camera move.
New toggle in the viewer settings (Display tab) that layers a WebGL fragment shader behind the VTK canvas, drifting four EDF orange and blue blobs with independent breathing cycles for a subtle "wow" effect. The shader reads the theme background color so the blob hue is slightly darkened on light themes to avoid washing out to pastel, and the peak intensity is capped so overlapping blobs never fully replace the theme color. VTK clears its canvas to fully transparent (0,0,0,0) when the dream is on so the shader shows through wherever the mesh doesn't.
vtk.js 35's default WebGL context attributes drop the framebuffer after compositing and its typings omit the `rootContainer` field, which together left left-click screenshots blank, right-click screenshots showing only the UI overlay, and temporarily broke the viewer layout when we tried to use `container`. Capture now goes through the official `captureNextImage` API so it no longer depends on `preserveDrawingBuffer`, the dream background canvas is composited behind the mesh when enabled, and the screenshot button's hover highlight is stripped during the full-viewer capture so it doesn't bake into the saved image.
Adds the [1.9.0] section covering volume and edge groups, the Groups settings tab, the vtk.js npm migration, the dream background, and the follow-up screenshot fix. README intro now carries the CI, open-issues, and Marketplace installs badges alongside version/license, and the visualizer section mentions the new group kinds, per-kind settings, and dream background.
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.
[1.9.0] - 2026-04-21
Volume and edge groups now appear in the viewer alongside face and node groups, a new "Groups" settings tab exposes per-kind display tweaks, the bundled vtk.js is replaced by the tree-shaken npm package, and an optional animated background adds a cosmetic touch.
Added
med2obj.pynow computes the skin of every volume group in a 3D.medmesh and writes it into the.objas a dedicated group. The viewer renders them as their own category with a filled isometric cube icon, toggle-able independently from face groups.EdgeActorCreator. Line width and depth offset (to avoid z-fighting with the skin) are user-controllable.vs-code-aster.viewer.edgeThresholdMultiplier(was previously editable but lost on reopen).vs-code-aster.viewer.dreamBackground) that drifts four EDF orange/blue blobs behind the mesh via a WebGL fragment shader. Theme-aware: blob intensity adapts to light vs dark themes, peak intensity is capped so overlapping blobs never fully replace the theme color. Does not affect mesh lighting.Changed
@kitware/vtk.jsnpm package — the 2.6 MB bundled script is gone, replaced by tree-shaken ES-module imports and real TypeScript types. Opens the door to regular version upgrades.Fixed
.objfiles cached under.vs-code-aster/mesh_cache/from older extension versions are invalidated when the converter changes (via the bumpedmed2obj-version: 2header).captureNextImageAPI (which doesn't depend onpreserveDrawingBuffer), and the dream background is composited behind the mesh when enabled. The screenshot button's hover highlight is also stripped from the full-viewer capture so it no longer bakes into the saved image.