Color atoms by LAMMPS group membership (#69) - #437
Merged
Conversation
added 10 commits
September 11, 2026 09:47
# Conflicts: # src/store/processing.ts
…ibutes # Conflicts: # src/modifiers/syncparticlesmodifier.ts
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.
The live run toolbar now exposes Color atoms, including a Groups section populated from LAMMPS's runtime group registry. Membership colors use a fixed 0/1 range and follow dynamic groups; switching groups while paused uses the cached membership snapshot immediately.
Execution-boundary instrumentation reads
info groups, then lets LAMMPS itself define private membership variables before running. The print callback only reads/writes MEMFS; it never re-enters the native engine. A compact bitset carries membership to the renderer, and internal files/variables stay out of saved outputs and analysis. Original input snapshots remain unchanged.Closes #69.
Validation: typecheck, 484 unit tests, production build, and 11 integrated real-engine/WebGL browser tests covering continuation/replay, dynamic radii, persistent tags, reopening structures, particle attributes/picking, SSAO, chart units, and group coloring. The group test covers a variable-expanded group name in an included file, paused selection, dynamic membership changes, and selecting all atoms. Unit coverage checks registry parsing and direct/continued/conditional execution-boundary instrumentation.
The live registry is refreshed before direct run/minimize commands (including literal commands in
if); entirely generated command streams and groups newly created insiderun everyare discovered at the next instrumented execution boundary. Membership changes within already-discovered dynamic groups are streamed every synchronized step.