Skip to content

Dev Plan #1

@jameslehoux

Description

@jameslehoux

6-Week Execution Plan (Milestones + Acceptance Criteria)
Week 1 — Data Contracts + Beamline Adapter
Goal: lock down how your 3 sequential scans are interpreted as one operando time series.

Tasks
Define canonical coordinate/data model:

ScanVolume: voxel array + axes (mu, chi, d) + units + timestamps.

ExperimentSequence: ordered list of scans (scan0001, scan0002, scan0003, …).

Implement a beamline-specific NeXus adapter:

Parse your exact group paths and attributes.

Validate scan ordering and metadata continuity (start/end times, motor ranges, detector config).

Add a validate_dataset command that reports missing fields, shape mismatches, and non-monotonic time.

Acceptance criteria
Can load all three scans into a single ordered sequence object.

Metadata schema validation passes with a machine-readable report.

Unit tests cover path parsing + ordering + required-field checks.

Week 2 — Segmentation Baseline (Classical CV)
Goal: produce stable per-scan 3D spot instances without foundation models yet.

Tasks
Implement:

3D LoG enhancement

h-maxima seed extraction

3D watershed segmentation

Add post-processing:

remove tiny objects

hole fill / mask cleanup

Compute object-level descriptors:

centroid in (mu,chi,d)

covariance/eigenvalues

integrated intensity and bbox

Acceptance criteria
Segmentation runs end-to-end on all three scans.

Produces spot table (N spots/scan) and masks in a reproducible format.

Visual QC notebook shows at least 20 representative objects with overlays.

Week 3 — Tracking v1 (Physics-Only Association)
Goal: establish a robust baseline tracker before semantic embeddings.

Tasks
Build frame-to-frame association using:

gated distance in position/shape space

Hungarian global assignment

Add basic lifecycle events:

born, continued, terminated

Build trajectory outputs + simple lineage graph.

Acceptance criteria
Tracks are generated across all three scans.

ID-switch rate and track fragmentation are computed.

Manual QC on selected difficult regions (near-overlap cases) documented.

Week 4 — 2.5D Multi-View Semantic Features
Goal: integrate your key novelty.

Tasks
For each segmented spot, generate 3 orthogonal MIPs:

proj along mu → (chi,d)

proj along chi → (mu,d)

proj along d → (mu,chi)

Extract frozen features (DINO family) per view, concatenate + normalize.

Update association cost:

C
i
j

α

x
i

x
j

2
+
β
(
1

s
i
m
(
f
i
,
f
j
)
)
C
ij

=α∥x
i

−x
j


2
+β(1−sim(f
i

,f
j

))
Run ablation: geometry-only vs geometry+semantic.

Acceptance criteria
Semantic feature extraction completes for all scans.

Tracking with semantic term reduces ID switches on overlap-heavy subsets.

Ablation report with tuned
α
,
β
α,β and confidence intervals.

Week 5 — Split/Merge + Fracture Precursor Logic
Goal: capture chemomechanical failure events, not just trajectories.

Tasks
Add lineage DAG event handling:

split (1→2+), merge (2+→1)

Implement precursor score:

clustering on dense/patch features

persistence requirement (e.g., ≥2 consecutive scans/frames)

Emit event table with timestamps and parent/child track IDs.

Acceptance criteria
Split/merge events are explicitly represented and queryable.

Precursor detection produces ranked candidates with confidence.

At least 5 manually reviewed event examples included in notebook/report.

Week 6 — Packaging, Benchmarking, and Release Candidate
Goal: make this usable by others and reproducible for publication.

Tasks
Harden CLI workflows:

validate, segment, track, events, report

Add configs and reproducible run manifests.

Write docs:

install, data layout, quickstart, FAQ, troubleshooting

Create benchmark outputs:

metrics summary + sample visualizations + runtime profiling.

Acceptance criteria
One-command pipeline run on your three-scan sample sequence.

Documentation allows a new user to reproduce baseline outputs.

v0.1.0 release candidate tagged with changelog and known limitations.

Weekly Deliverables (what you should have in-hand every Friday)
Code merged on a stable branch.

Run artifact (JSON/CSV/Parquet + plots) for the current milestone.

Short decision memo: what worked, what failed, what changed next week.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions