Same underlying model as the 3D simulator, reproduced exactly (verified independently in a standalone Node scratch script, not shipped): each of the 11 ECLSS development tasks has an optimistic (o), most-likely (m) and pessimistic (p) duration; PERT gives the single-point estimate and the Critical Path Method (CPM) locates the deterministic schedule:
PERT duration: d = (o + 4m + p) / 6
Forward pass: ES(i) = max( EF(j) ) over predecessors j; EF(i) = ES(i) + d(i)
Backward pass: LF(i) = min( LS(k) ) over successors k; LS(i) = LF(i) - d(i)
Total float: F(i) = LS(i) - ES(i) → F(i) = 0 ⇒ task i is on the critical path
Each Monte Carlo trial samples every task's duration from a triangular distribution built from (o, m, p), re-runs the forward pass, and records the project finish date:
Triangular sample (u ~ Uniform(0,1)):
if u < (m-o)/(p-o): x = o + sqrt( u (p-o)(m-o) )
else: x = p - sqrt( (1-u)(p-o)(p-m) )
Numeric check: sampling 200,000 draws of a triangular(8, 12, 20) distribution gives a sample mean of ≈13.34, matching the closed-form triangular mean (o+m+p)/3 = 13.33 to within Monte Carlo noise — the 3D source's math is correct, so this companion reuses it unchanged (no fix needed).
What's genuinely different is the view: instead of an orbit-controlled 3D scene, this is a flat, pannable/zoomable 2D Gantt-style diagram — bar length is task duration, bar position is its earliest-start window, red bars are on the critical path (zero float) — stacked directly above a 2D bar-chart histogram of the Monte Carlo completion-time distribution, with a draggable deadline marker you can slide by hand instead of only via the slider.
- Duration uncertainty — scales the (m−o) and (p−m) spreads symmetrically around each task's most-likely duration before sampling.
- Monte Carlo trials — how many complete schedule re-runs build the histogram; more trials narrow the sampling noise in the reported probability.
- Target deadline — the completion date the project is measured against; drag the amber marker in the histogram or use the slider.