Skip to content

Pending Native GUI Verification

This page tracks checks that require interacting with the native RAMAL-EBX GUI. An agent or the owner can perform them as specified per issue; code, numerical, static, and build checks do not substitute for observed GUI evidence.

Issue 4: Design world medium

Native GUI observation, 2026-09-24, Application Verification Project only. Created World Medium Verification, authored a canonical dry-air input in the Design source drawer, saved it, and published Calculation calculation-20260924-0124MYT through Local PHITS. Its frozen input/design.inp has NIST dry-air composition and gas=1 at mat[99999], and world cell 900001 99999 -0.00120479 -900000 #10. The GUI reported a verified Succeeded Result. This disposable run is not Paper 1 evidence.

After rebuilding the app, the Design Properties panel displayed Air; selecting Vacuum changed the GUI to Unsaved and the source world cell to material 0. Cmd+Z restored saved Air; Cmd+Shift+Z restored unsaved Vacuum. Saving, closing, and reopening retained Vacuum. Publishing Calculation calculation-20260924-0141MYT froze 900001 0 -900000 #10 in input/design.inp; no vacuum material card was authored. The existing dry-air card remained present but unreferenced, and the imported cell's old $ air inside world comment remained unchanged. These are source-preservation limitations, not a claim of a clean vacuum-only material list. No Paper 1 Design or Calculation was used.

A second ordinary Design, Vacuum Choice Verification, visibly defaulted to Air before any geometry existed. Selecting Vacuum authored an empty [Material], a world RPP, 900001 0 -900000, and an outer void; switching back to Air authored canonical dry air, and undo returned to Vacuum. After adding the water geometry/source/tally through the authoritative source drawer, the saved Design remained Vacuum and Ready. Calculation calculation-20260924-0155MYT froze a materialless world 900001 0 -900000 #10 with only mat[1] for water—no air or vacuum material card. This is disposable application verification, not Paper 1 evidence.

Issue 59: linked spatial probe

Status: pending owner verification.

Prerequisite

Use a Succeeded Result from any PHITS version whose frozen input declares a supported rectilinear voxel tally and whose Result contains the matched report, value VTK, and relative-error VTK artifacts. Prefer an asymmetric non-cubic field with different values along X, Y, and Z so orientation mistakes are visible.

Workflow

  1. Launch the current app with ./tools/run_macos_app.sh.
  2. Open the Project, enter Analyze, select the Result, and wait for the typed field to load.
  3. If frozen geometry encloses the field, enable Cutaway, select X, Y, or Z, and use Cut at probe. Confirm geometry is sliced while dose voxels and the single probe marker remain visible; then confirm the active plot cursor and inspector show the same cell/value with no independent default plot cursor.
  4. Hover a rendered voxel without clicking. Confirm the viewport label, inspector, slice/profile, and plot cursor preview that exact cell and identify the state as a preview.
  5. Move the pointer away. Confirm every linked view returns to the previously locked cell.
  6. Click a different rendered voxel. Confirm it becomes the locked probe and remains active after the pointer moves away.
  7. Open Profile X, Profile Y, and Profile Z in turn. For each profile, confirm:
  8. the cursor is on the locked cell;
  9. the horizontal axis names the source coordinate in centimetres;
  10. the quantity, source unit, and particle identity are visible;
  11. the active source coordinates and value match the inspector;
  12. the relative-error companion plot appears when the source artifact provides relative error.
  13. Middle-drag each profile cursor. Confirm only that profile axis changes by exact cells and the viewport marker, inspector, active orthogonal slice, and other profiles follow the same cell.
  14. Open Slice X, Slice Y, and Slice Z in turn. Confirm each heatmap retains increasing source-coordinate axes, source bounds, and the field value scale, and its marker matches the locked cell.
  15. Change the slice cell control and middle-drag within each heatmap. Confirm the shared probe, viewport indication, inspector, and profiles update bidirectionally to the same exact cell.
  16. With Analyze focused and no text field active, use J/L for X−/X+, U/O for Y−/Y+, and K/I for Z−/Z+. Confirm one exact-cell step per key press, boundary clamping without wraparound, and synchronized updates in every view.
  17. Switch particle pages. Confirm the spatial cell remains locked while the value, particle label, uncertainty, profiles, slices, inspector, and viewport field update to the selected page.

Evidence to record

Record the Result ID and particle page, the starting and ending voxel indices, one screenshot covering the viewport/inspector/profile state, one screenshot covering an orthogonal slice, and any mismatch between the expected and observed cell, source coordinates, value, unit, particle, or relative error.

Issue 60: Analyze transformation stack

Status: optional owner observation; automated semantic coverage is authoritative for transformed values and ordering.

  1. Open a compatible typed voxel Result in Analyze.
  2. Confirm the stack starts with disabled Robust positive range followed by enabled Logarithmic display scale.
  3. Confirm viewport voxels, slices, and profiles share the displayed range and logarithmic mapping while the inspector retains the exact source value and unit.
  4. Enable Use robust range and confirm the displayed range changes to the labelled positive 2nd–98th percentile interval without changing the source value.
  5. Try to move robust range below logarithmic scale and confirm the order remains unchanged with an explanatory diagnostic.
  6. Toggle, remove, and reset transformations; confirm reset restores the default order and state.
  7. Confirm exact-zero, negative, invalid, and unscored category counts remain separately labelled outside the logarithmic scale.

Issue 61: volumetric dose and explicit display LOD

Status: pending native-GUI evidence. This is a handoff to the next agent, not an owner checklist.

Issue #61's implementation is committed locally as 18e7b7c, a9e4f9d, and cae09ba, but is not pushed or closed. Preserve unrelated working-tree changes. Odin vet, 234 tests, shader compilation, and the macOS app build passed; none establishes visual behavior.

Build and launch through ./tools/run_macos_app.sh; perform the steps below using native GUI control. On failure, record the starting state, actions, Result identity, screenshot, and exact error; repair and repeat. On success, commit the evidence/documentation update, push the branch, and close #61 with a comment naming commits and GUI evidence. Publish documentation if Cloudflare credentials are available.

  1. Open a compatible typed voxel Result whose frozen geometry encloses part of the positive dose field.
  2. Confirm the default broad-dynamic-range volume is visible in the frozen field coordinate bounds and the unselected geometry is translucent while a selected structure remains opaque and distinct.
  3. Switch among the three reviewed transfer presets, expand Advanced transfer function, and change a normalized position, color, and opacity. Confirm each parameter remains visible and the volume updates immediately.
  4. Use Fine, Balanced, and Coarse display LOD. Confirm each state is labelled with displayed and total source voxel counts, and every sampled state says it is a display sample rather than the complete source grid.
  5. At each LOD, lock the same probe and confirm the inspector, slice, and profile retain the same exact source index, coordinates, value, unit, particle, and uncertainty.
  6. Orbit, probe, move the slice, and edit the transfer curve on a field large enough to use sampled display LOD; confirm interaction remains responsive.
  7. Change particle page, Result, robust-range state, and transfer settings. Confirm no geometry, field mesh, diagnostic, or completed background load from the prior state appears under the current controls.

Record the Result ID, source grid shape, active particle, displayed/source voxel counts for each LOD, the edited transfer parameters, and screenshots showing geometry alignment, contextual transparency, the transfer editor, and one exact probe at two different display LODs.