Repository navigation
Description
Overview
At cluster scale, point_solver.png is unreadable. Every panel uses the full solver extent (±40″), and the real starting grid's triangles (0.2″, 369,937 at step 0) are too small to draw. Steps 1, 2 and final collapse to ▲ markers and look identical. This task keeps the galaxy-scale design that was chosen (variant F: one image-plane span across a 2×2 of Step 0/1/2/final, every image of the source in each panel) and makes it work per source at cluster scale. It changes the figure only; the solver used for modelling is untouched.
Plan
- Per-source span: each panel spans the source's own images and rejected candidates (padded), not the full solver extent.
- Display grid: when the real step-0 triangles are too small to draw at that span (
is_too_small_to_draw), re-solve for the figure only on a coarse display grid.- Starting pixel scale = min(span/10, closest image separation/1.6).
- If the display solve does not recover the real solve's images, fall back to the real steps.
- Labels: rejected candidates are labelled
r1,r2(grey italic), replacing the "rejected by magnification_threshold" annotation box. - Curves: darker feat: cluster/multi-source point figures — unified dataset, global fit, fit_per_image, with_points, per-redshift curves #794 critical-curve style via
point_sources.curves_for_planes. - Ticks: the same rounded tick helper as the feat: cluster/multi-source point figures — unified dataset, global fit, fit_per_image, with_points, per-redshift curves #794 figures.
- Validation and release path: unit tests, then re-render autolens_visualization (cluster and point_source) and dispatch the Eyes refresh.
Tier: judge — merge mode: human /prm
Detailed implementation plan
Affected Repositories
- PyAutoLens (primary)
- autolens_visualization
Branch Survey
| Repository | Current Branch | Dirty? |
|---|---|---|
| ./PyAutoLens | main | clean |
| ./autolens_visualization | main | clean |
Suggested branch: feature/cluster-point-solver-readability
Implementation Steps
autolens/point/plot/point_solver_plots.py- Per-source extent from the image and rejected-candidate positions (replacing
_extent_from's solver extent). - Display-grid re-solve when the real step-0 edge is below the draw limit. The rule is the pixel scale above, followed by an image-recovery check against the real solve, with a fallback to the real steps.
- r-labels replace the rejected annotation box (
rejected_corner_from/_annotate_images). - Curves via
point_sources.curves_for_planes, in the feat: cluster/multi-source point figures — unified dataset, global fit, fit_per_image, with_points, per-redshift curves #794 style. - Ticks via the shared helper used by
multi_source_plots.
- Per-source extent from the image and rejected-candidate positions (replacing
- Tests in
test_autolens/point/plot/:- per-source extent;
- display-grid trigger and its pixel-scale rule;
- fallback when the display solve misses an image;
- r-labels.
- autolens_visualization: re-render
clusterandpoint_source_image_chi_squared(plus teaching), rebuildGALLERY.mdand the manifest.
Reference prototype (approved 2026-10-22: cluster_point_1.png): scratch eyes/autolens/cluster_point_solver_prototype/round3/ with its producer.
Key Files
autolens/point/plot/point_solver_plots.pyautolens/point/plot/point_sources.py(curves, shared helpers)autolens_visualization/scripts/cluster/visualization.py
Original Prompt
Click to expand starting prompt
Cluster point_solver.png: readable refinement panels and many-image labels
Consequence: judge
Autonomy: human-required
builds-on: complete/2026/10/cluster-point-figures.md (PyAutoLens#794), complete/2026/10/point-solver-refinement-figure.md (PyAutoLens#788)
@PyAutoLens @autolens_visualization
Context
This is carried over from the cluster point-figures pass. It was listed under "Known issues" there but was not part of the final approved v4 design, so it did not ship in #794.
Known issues
- Refinement panels. On the cluster
point_solver.png, refinement steps 1, 2 and final show only ▲ markers at the ~±40″ extent, and step 0 is a grey shade (369,937 triangles). Consider per-image zoom insets or a per-step adaptive extent. - Labelling. The solver figure has no labelling plan for many images (>10 images → no numbers). Align it with the
k·ilabels the feat: cluster/multi-source point figures — unified dataset, global fit, fit_per_image, with_points, per-redshift curves #794 figures now use.
Intent
Survey the cluster point_solver.png with the human via /eyes, agree on the conventions, then run /start_dev.
Activity
Jammy2211 commentedon Oct 22, 2026
Library PR Created: #796 (pending-release), with the re-render in PyAutoLabs/autolens_visualization#15. Heart was YELLOW for unrelated reasons (manifest drift, stale PyAutoArray rehearsal) and the human acknowledged it.
test_autolens: 936 passed, 1 xfailed. No workspace impact beyond the viz re-render. Merge order: #796, then re-run viz lint, merge viz#15, then dispatch Eyesdashboard_refresh.yml.Jammy2211 commentedon Oct 22, 2026
Shipped: PyAutoLens#796 merged (pending release), followed by PyAutoLabs/autolens_visualization#15.
point_solver.pngnow spans each source's own images, draws a figure-only coarse display grid when the solver's triangles are too small to see (and only if it recovers the same images), labels rejected candidates r1, r2, and draws own-plane critical curves in the #794 style. The modelling solver is unchanged. Checking which starting grid modelling needs stays with the cluster-PointSolver robust-settings campaign.